TweakPNG: утилита для просмотра и редактирования структуры PNG-файлов
TweakPNG — узкая, техническая и при этом очень практичная программа для тех случаев, когда PNG-файл нужно разобрать не как картинку, а как контейнер данных. Она показывает внутреннюю структуру PNG: IHDR, PLTE, IDAT, IEND, gAMA, pHYs, tEXt, zTXt, iTXt, iCCP, tRNS, bKGD и другие блоки. В обычном просмотрщике изображений эти данные скрыты, а в TweakPNG они вынесены в таблицу: видно тип chunk, длину, CRC, атрибуты и расшифровку содержимого.
Содержание
- 1 Скачать TweakPNG
- 2 Для чего нужна программа
- 3 Чем TweakPNG отличается от обычного редактора изображений
- 4 Интерфейс и логика главного окна
- 5 Что показывает столбец Attributes
- 6 Основные chunks, с которыми работает TweakPNG
- 7 Работа с меню File
- 8 Работа с меню Edit
- 9 Объединение и разделение IDAT
- 10 Import Chunk и Export Chunk
- 11 Import ICC Profile
- 12 Работа с меню Insert
- 13 Редактирование текстовых метаданных
- 14 Работа с pHYs: физический размер, DPI и соотношение пикселей
- 15 gAMA, sRGB и cHRM: цветовое поведение PNG
- 16 Редактор палитры PLTE
- 17 Прозрачность через tRNS
- 18 Фоновый цвет через bKGD
- 19 Редактирование IHDR: мощно, но опасно
- 20 Встроенный просмотрщик изображения
- 21 Preferences
- 22 Configure Tools
- 23 Практическая инструкция: как посмотреть структуру PNG
- 24 Практическая инструкция: как удалить лишние chunks
- 25 Практическая инструкция: как добавить комментарий в PNG
- 26 Практическая инструкция: как изменить DPI без изменения пикселей
- 27 Практическая инструкция: как импортировать ICC-профиль
- 28 Практическая инструкция: как объединить IDAT
- 29 Практическая инструкция: как разделить IDAT
- 30 Практическая инструкция: как изменить прозрачность палитрового PNG
- 31 Практическая инструкция: как задать bKGD
- 32 Практическая инструкция: как проверить повреждённый PNG
- 33 История версий программы
- 34 MNG, JNG и APNG
- 35 Сильные стороны TweakPNG
- 36 Ограничения и риски
- 37 Безопасность и приватность
- 38 Производительность и удобство в работе
- 39 Сравнение с аналогами
- 40 Где TweakPNG особенно полезен
- 41 Где TweakPNG использовать не стоит
- 42 Техническая логика работы с CRC
- 43 Работа с нестандартными и private chunks
- 44 Типичный рабочий процесс
- 45 Ошибки, которые часто делают при работе с TweakPNG
- 46 Плюсы
- 47 Минусы
- 48 Кому подходит TweakPNG
- 49 Кому лучше выбрать другой инструмент
- 50 Итоговая оценка
- 51 FAQ
- 51.1 Можно ли в TweakPNG редактировать изображение как в Photoshop?
- 51.2 Можно ли удалить метаданные PNG?
- 51.3 Можно ли изменить DPI?
- 51.4 Можно ли импортировать ICC-профиль?
- 51.5 Можно ли восстановить повреждённый PNG?
- 51.6 Можно ли изменить прозрачность?
- 51.7 Можно ли изменить цвет в палитре?
- 51.8 Можно ли объединить IDAT?
- 51.9 Чем TweakPNG отличается от pngcheck?
- 51.10 Чем TweakPNG отличается от ExifTool?
- 51.11 Безопасно ли удалять gAMA, cHRM, sRGB и iCCP?
- 51.12 Можно ли использовать TweakPNG для APNG?
Скачать TweakPNG
Новейшая версия для Windows и macOS. Удобный редактор с ИИ и профессиональными функциями.
Это не Photoshop, не GIMP, не Paint.NET и не классический PNG-оптимизатор. TweakPNG нужен для ручного вмешательства в структуру файла: удалить лишние chunks, проверить порядок блоков, добавить текстовые метаданные, изменить гамму, физический размер пикселя, прозрачность палитры, фоновый цвет, импортировать ICC-профиль или посмотреть, почему конкретный PNG ведёт себя странно в браузере, игре, движке, просмотрщике или конвертере.
Программа особенно полезна в ситуациях, где обычный редактор изображений только мешает. Большинство графических редакторов при сохранении пересобирают файл: меняют сжатие, удаляют служебные блоки, переписывают палитру, по-своему работают с цветовым профилем. TweakPNG действует иначе: она показывает PNG на уровне chunks и позволяет редактировать отдельные элементы без полной перерисовки изображения. Именно поэтому её используют не для художественной обработки, а для диагностики, ручной правки PNG-метаданных, тестирования парсеров и точечной работы с внутренним форматом файла. TweakPNG работает как Windows-приложение для просмотра и редактирования PNG metadata, а сама программа описана как low-level PNG image file manipulation utility.

На главном экране видно главное достоинство программы: PNG разбирается в виде последовательности блоков. В примере отображаются IHDR, cHRM, gAMA, PLTE, tRNS, bKGD, pHYs, tIME, IDAT. Для каждого блока есть длина, CRC, атрибуты и краткое описание содержимого.
Для чего нужна программа
TweakPNG решает задачи, которые почти никогда не закрываются обычными графическими редакторами. В ней можно открыть PNG-файл и увидеть, какие технические данные реально записаны внутри. Это важно, когда изображение выглядит нормально, но ведёт себя нестандартно: не так отображается прозрачность, меняются цвета в браузере, файл не принимается движком, внутри есть скрытый текстовый блок, картинка занимает больше места из-за служебных chunks или нужно проверить, корректно ли приложение записывает PNG.
Типичные сценарии работы:
просмотр структуры PNG-файла на уровне chunks;
ручное удаление ненужных служебных блоков;
добавление и изменение текстовых метаданных;
проверка порядка chunks через
Check Validity;просмотр и редактирование
gAMA,cHRM,sRGB,pHYs,tIME;работа с
PLTE,tRNS,bKGDв палитровых PNG;импорт ICC-профиля в
iCCP;копирование chunks между файлами;
экспорт отдельного chunk во внешний файл;
импорт нестандартного или частного chunk;
объединение нескольких
IDAT;разделение
IDATна несколько частей;подготовка тестовых PNG-файлов для программ, которые читают изображения;
анализ PNG в CTF, форензике и ручной диагностике повреждённых файлов.
TweakPNG особенно ценна тем, что показывает не красивую картинку, а структуру. PNG устроен как последовательность chunks: обязательные критические блоки нужны для чтения изображения, а дополнительные блоки хранят цветовое управление, текстовые данные, физическое разрешение, прозрачность, палитру и другие свойства. Валидный PNG должен содержать IHDR, один или несколько IDAT и IEND; IHDR идёт первым, IDAT хранит данные изображения, IEND завершает поток.
Чем TweakPNG отличается от обычного редактора изображений
Обычный редактор изображений работает с пикселями. Пользователь открывает картинку, рисует, стирает, меняет размер, применяет фильтр, экспортирует результат. При этом внутренняя структура PNG почти всегда остаётся за кадром. Пользователь не видит, какие chunks были удалены, какие добавлены, как изменились текстовые поля, куда делся ICC-профиль и почему один просмотрщик показывает картинку иначе, чем другой.
TweakPNG работает на другом уровне. Она не предназначена для ретуши, рисования, кадрирования и визуальной коррекции. Внутренний viewer есть, но он нужен для проверки текущего состояния файла, а не для художественного редактирования. Основная рабочая область — таблица chunks. В ней можно выбрать отдельный блок, открыть его редактор, удалить, переместить, скопировать, вставить, экспортировать или создать новый блок через меню Insert.
Это делает программу удобной для точечной технической работы:
| Задача | Обычный редактор | TweakPNG |
|---|---|---|
| Нарисовать объект на изображении | Подходит | Не подходит |
| Обрезать изображение | Подходит | Не подходит |
Посмотреть gAMA | Обычно нет | Подходит |
Удалить tEXt или zTXt | Не всегда понятно | Подходит |
Изменить pHYs | Иногда через DPI | Подходит напрямую |
| Увидеть CRC каждого chunk | Нет | Подходит |
| Переместить chunk | Нет | Подходит |
Импортировать iCCP | Зависит от редактора | Есть отдельная команда |
Объединить IDAT | Нет ручного контроля | Есть команда |
| Подготовить тестовый PNG | Неудобно | Подходит |
TweakPNG не пытается быть универсальной. Её сильная сторона — ручной контроль над PNG chunk structure. Её слабая сторона — отсутствие защиты от технически неправильных действий. Пользователь может удалить нужный блок, поставить chunk в неправильное место, изменить IHDR так, что файл станет противоречивым, или убрать данные, от которых зависело корректное отображение.
Интерфейс и логика главного окна
Интерфейс TweakPNG компактный и строгий. В верхней части находится строка меню:
File;Edit;Insert;Options;Tools;Help.
Основную часть занимает таблица chunks. Она состоит из пяти ключевых столбцов:
| Столбец | Что показывает |
|---|---|
Chunk | четырёхбуквенный код блока: IHDR, IDAT, tEXt, pHYs и т.д. |
Length | размер данных chunk без служебных 12 байт |
CRC | контрольная сумма chunk |
Attributes | свойства блока, вычисленные по регистру букв в названии chunk |
Contents | расшифровка содержимого, если TweakPNG умеет его интерпретировать |
В нижней части окна отображается размер PNG-файла. Таблица поддерживает настройку ширины столбцов: границы можно перетаскивать мышью, а столбцы фактически скрывать, если сдвинуть ширину до минимума. Редактирование выполняется двойным щелчком по chunk или клавишей Enter на выбранной строке. Не каждый блок доступен для полноценного редактирования: часть chunks можно только просмотреть, часть — изменить частично, а часть — удалить, переместить или скопировать как бинарный блок.
Главное окно удобно читать сверху вниз. PNG хранит chunks последовательно, и TweakPNG показывает их ровно в том порядке, в котором они находятся в файле. Это важно: порядок chunks в PNG имеет значение. Например, IHDR должен быть первым, PLTE должен находиться до IDAT, а IDAT-блоки должны идти подряд. Если нарушить порядок, файл может стать невалидным даже при правильных данных внутри каждого отдельного блока.
Что показывает столбец Attributes
Столбец Attributes часто кажется второстепенным, но он полезен при чтении структуры PNG. Свойства chunk определяются по регистру букв в четырёхбуквенном имени. В TweakPNG можно быстро увидеть, критический это блок или ancillary, безопасен ли он для копирования и как к нему должен относиться редактор, который не понимает его содержимое.
Например:
IHDR— critical;IDAT— critical;IEND— critical;gAMA— ancillary;pHYs— ancillary;tEXt— ancillary;iTXt— ancillary;tRNS— ancillary.
Критические chunks обязательны для корректного чтения изображения. Ancillary chunks хранят дополнительные сведения: гамму, цветовые координаты, физическое разрешение, время изменения, текстовые поля, профиль, фон, прозрачность и другие параметры. Именно с такими блоками TweakPNG чаще всего и используется: их можно удалить, изменить или создать, не трогая пиксельные данные напрямую.
Основные chunks, с которыми работает TweakPNG
PNG-файл внутри TweakPNG выглядит как список коротких четырёхбуквенных кодов. Некоторые из них обязательны, некоторые встречаются только в определённых типах изображений, а некоторые добавляются программами для хранения дополнительных данных.
| Chunk | Назначение | Как используется в TweakPNG |
|---|---|---|
IHDR | заголовок изображения | просмотр и редактирование заявленных параметров |
PLTE | палитра | просмотр и редактирование цветов |
IDAT | сжатые данные изображения | нельзя редактировать как пиксели, но можно объединять и разделять |
IEND | конец изображения | завершает PNG-структуру |
gAMA | гамма | просмотр, создание, редактирование |
cHRM | хроматические координаты | просмотр, создание, редактирование |
sRGB | индикатор sRGB | просмотр, создание, редактирование |
iCCP | ICC-профиль | просмотр, частичное редактирование имени, импорт профиля |
pHYs | физический размер пикселя | изменение DPI-подобных параметров и соотношения пикселей |
tIME | время последнего изменения | просмотр и изменение даты/времени |
tEXt | текстовые метаданные | просмотр, создание, редактирование |
zTXt | сжатые текстовые метаданные | просмотр, создание, редактирование при наличии поддержки сжатия |
iTXt | международный текст | просмотр, создание, редактирование в Unicode-сборке |
tRNS | прозрачность | редактирование прозрачности в палитровых и некоторых grayscale/RGB-сценариях |
bKGD | рекомендуемый фоновый цвет | выбор фонового цвета |
sBIT | значимые биты | просмотр, создание, редактирование |
sCAL | физический масштаб | просмотр, создание, редактирование |
oFFs | смещение изображения | просмотр, создание, редактирование |
acTL | APNG animation control | просмотр, создание, редактирование |
fcTL | APNG frame control | просмотр, создание, редактирование |
fdAT | APNG frame data | частичная работа с sequence number |
vpAg | virtual page | просмотр, создание, редактирование |
Программа поддерживает просмотр и изменение многих стандартных PNG chunks, но не все блоки одинаково доступны. IDAT содержит сжатый поток изображения, поэтому TweakPNG не открывает его как привычный пиксельный редактор. С ним работают структурно: объединяют, разделяют, копируют, перемещают только при понимании порядка. Текстовые, палитровые, цветовые и служебные chunks открываются через специализированные редакторы.
Работа с меню File
Меню File отвечает за операции с документом и базовую проверку структуры. В программе используются следующие команды:
New;Open...;Reopen;Save;Save As...;Close;Check Validity;File Signature...;Exit.
New создаёт пустой рабочий документ. В практической работе эта команда нужна редко, потому что TweakPNG чаще используют для анализа существующего PNG. Но она полезна, когда нужно вручную собрать тестовый файл: создать структуру, добавить IHDR, добавить нужные служебные chunks и проверить, как приложение поведёт себя с нестандартной комбинацией блоков.
Open... открывает PNG, MNG или JNG. После открытия файл сразу раскладывается на chunks. Пользователь видит не картинку как полотно, а таблицу блоков. Для быстрого анализа достаточно открыть файл и посмотреть, какие chunks находятся между IHDR и IEND.
Reopen возвращает текущий файл из исходного состояния на диске. Это полезно, если пользователь внёс изменения, но хочет быстро отбросить их без ручного закрытия и повторного открытия.
Save сохраняет изменения в текущий файл. Перед сохранением TweakPNG выполняет проверку валидности структуры и предупреждает, если обнаруживает проблемы. Это не полноценная гарантия корректности файла, но защита от грубых ошибок порядка и отсутствия обязательных chunks.
Save As... сохраняет изменённую структуру в новый файл. Для TweakPNG это предпочтительный сценарий при экспериментах: исходный PNG лучше не перезаписывать, потому что низкоуровневые изменения легко сделать необратимыми.
Close закрывает текущий документ.
Exit завершает работу программы.
Check Validity
File → Check Validity проверяет общую структуру PNG. Функция ищет ошибки порядка chunks и отсутствие обязательных блоков. Она помогает быстро понять, похож ли текущий файл на допустимый PNG с точки зрения структуры.
Важно понимать границу этой проверки. Check Validity не доказывает, что файл полностью корректен. Она не проверяет все возможные внутренние значения каждого chunk и не гарантирует, что изображение будет одинаково открываться во всех программах. Это структурная проверка, а не глубокий аудит PNG-потока. Перед сохранением TweakPNG запускает эту проверку автоматически; если найдены проблемы, пользователь должен подтвердить сохранение.
File Signature…
File → File Signature... позволяет выбрать сигнатуру, которая будет записана при сохранении файла: PNG, MNG или JNG. Это редкая функция, но она хорошо показывает уровень программы: TweakPNG работает не только с привычными визуальными параметрами, а с базовыми элементами файлового формата. Каждый файл семейства PNG начинается с 8-байтовой сигнатуры, и TweakPNG даёт ручной доступ даже к этому элементу.
Работа с меню Edit
Меню Edit — центр ручного изменения chunks. В нём находятся команды редактирования, удаления, перемещения, копирования, импорта, экспорта и операций с IDAT.
Ключевые команды:
Edit Chunk...;Delete;Move Up;Move Down;Cut;Copy;Paste;Combine Selected IDAT;Combine All IDAT;Split IDAT...;Import Chunk...;Export Chunk...;Import ICC Profile....
Edit Chunk... открывает редактор выбранного блока. Тип редактора зависит от chunk. Для PLTE открывается редактор палитры. Для текстовых chunks — окно работы с keyword и текстом. Для pHYs — поля, связанные с размером пикселя и единицами. Для gAMA, cHRM, sRGB, tIME и других поддерживаемых блоков доступны собственные формы.
Delete удаляет выбранный chunk. Это простая, но опасная команда. Удаление tEXt, zTXt, iTXt, gAMA, pHYs, tIME часто не ломает картинку, но меняет метаданные и поведение отображения. Удаление PLTE, IDAT, IHDR, IEND может сделать файл неработоспособным. Перед удалением критических blocks нужно понимать, зачем они нужны.
Move Up и Move Down перемещают выбранные chunks вверх или вниз. Можно перемещать несколько блоков одновременно. Это полезно при ручной сборке тестового PNG или исправлении порядка после импорта chunk. Но перемещать IDAT в файле с несколькими IDAT нельзя произвольно: блоки с данными изображения должны идти последовательно, а нарушение порядка делает файл нечитаемым.
Cut, Copy, Paste работают с chunks через системный буфер обмена. Это позволяет переносить блоки между файлами. Например, можно открыть один PNG, скопировать текстовый chunk, открыть другой PNG и вставить его перед выбранной строкой. В отличие от привычного поведения многих редакторов, Paste не заменяет выбранный блок, а вставляет новые chunks перед первой выбранной строкой.
Объединение и разделение IDAT
IDAT — блок, в котором находится сжатый поток данных изображения. PNG допускает один или несколько IDAT. Некоторые программы пишут много IDAT фиксированного размера, например по 8192 байта. С точки зрения изображения это нормально, но каждый chunk имеет накладные расходы: длина, имя типа и CRC добавляют 12 байт поверх собственно данных chunk.
TweakPNG умеет объединять такие блоки:
Edit → Combine All IDATобъединяет всеIDAT;Edit → Combine Selected IDATобъединяет выделенный диапазонIDAT.
Экономия от объединения невелика: 12 байт на каждый устранённый chunk. Это не глубокая оптимизация PNG, не подбор фильтров и не повторное сжатие как у pngcrush или OptiPNG. Но для ручной чистки файла функция полезна: структура становится компактнее, а лишние контейнерные накладные расходы исчезают.
Split IDAT... делает обратную операцию. Пользователь выбирает IDAT, задаёт размер первого нового блока и решает, нужно ли повторять разбиение. Эта возможность редко нужна в бытовой работе, но полезна для тестирования программ, которые читают PNG. Например, можно проверить, корректно ли декодер воспринимает изображение, где поток IDAT разделён на множество маленьких частей.
Import Chunk и Export Chunk
Import Chunk... и Export Chunk... предназначены для работы с отдельными chunks как с внешними файлами.
При импорте внешний файл должен начинаться с четырёх символов идентификатора chunk, например PLTE, tEXt, vpAg или частного нестандартного имени. Всё, что идёт после этих четырёх символов, считается данными chunk. Длина и CRC в импортируемый файл не включаются: TweakPNG формирует их самостоятельно при записи PNG.
Это позволяет вставлять не только стандартные, но и private chunks. Такой сценарий нужен разработчикам, авторам собственных форматов, моддингу, тестированию парсеров и ситуациям, когда PNG используется как контейнер дополнительных данных. Но создание корректного бинарного содержимого chunk часто требует отдельного hex-редактора или собственного скрипта.
Export Chunk... сохраняет выбранный chunk в файл того же формата: сначала четырёхбуквенный код, затем данные. Команда работает с одним chunk за раз. Это удобно, когда нужно вынуть iCCP, текстовый блок, палитру или нестандартные данные и изучить их отдельно.
Import ICC Profile
Import ICC Profile... создаёт iCCP chunk из ICC-профиля .icc. Эта команда полезна, когда нужно встроить цветовой профиль в PNG. Важно, что импорт профиля — это не визуальная цветокоррекция. Программа не меняет пиксели изображения, а добавляет в файл данные цветового профиля, которые затем могут интерпретироваться другими приложениями.
iCCP относится к тем chunks, где неправильное использование может привести к неожиданному результату. Одни программы учитывают профиль, другие игнорируют, третьи могут отдавать приоритет sRGB или вести себя иначе при конфликтующих цветовых данных. Поэтому перед импортом ICC-профиля нужно понимать, какая цель: сохранить профиль для дальнейшей обработки, добиться конкретного отображения в поддерживающем софте или подготовить тестовый файл для проверки цветового управления.
Работа с меню Insert
Меню Insert добавляет новые chunks. Это одна из важнейших частей TweakPNG: пользователь может не только редактировать существующие блоки, но и создавать отсутствующие.
В меню присутствуют команды для добавления:
acTL (APNG animation control);bKGD (Background color);cHRM (Chromaticities);fcTL (APNG frame control);gAMA (Gamma);IEND (End of image);IHDR (Image header);oFFs (Image offset);pHYs (Pixel size, aspect ratio);PLTE (Palette);sBIT (Significant bits per sample);sCAL (Physical scale);sRGB (sRGB color space indicator);sTER (Stereo image indicator);tEXt/zTXt/iTXt (Text);tIME (Time of last modification);tRNS (Transparency);vpAg (Virtual page).

При добавлении нового chunk TweakPNG создаёт его с базовыми значениями. После этого блок нужно открыть через Edit Chunk... и заполнить корректно. Программа не всегда автоматически ставит новый chunk в идеальное место, поэтому после вставки часто требуется переместить его через Move Up или Move Down, а затем запустить Check Validity.
На практике Insert чаще всего используют для:
добавления текстовых метаданных через
tEXt/zTXt/iTXt;добавления
pHYsдля физического разрешения;добавления
gAMAилиsRGB;добавления
tRNSперед настройкой прозрачности палитры;добавления
bKGDперед выбором фонового цвета;создания
PLTEв тестовых файлах;добавления APNG-служебных chunks при экспериментах;
восстановления удалённого или отсутствующего
IENDв тестовой структуре.
Редактирование текстовых метаданных
Одна из самых понятных задач в TweakPNG — работа с текстовыми chunks. PNG может хранить комментарии и служебные строки в tEXt, zTXt и iTXt. В таких блоках часто встречаются данные генератора, описание изображения, параметры экспорта, комментарии, workflow-информация, иногда — промпты генераторов изображений или служебные поля приложений.
В TweakPNG текстовые данные можно просматривать, добавлять и изменять.
Как добавить текстовый chunk
Порядок действий:
Открыть PNG в TweakPNG.
Выбрать
Insert → tEXt/zTXt/iTXt (Text)или использоватьCtrl+T.Открыть созданный chunk, если редактор не открылся автоматически.
Выбрать подходящий тип текстового блока.
Заполнить keyword.
Ввести текстовое значение.
Нажать
OK.Проверить порядок chunks через
File → Check Validity.Сохранить файл через
Save As....
Для обычной подписи или комментария достаточно tEXt. Для сжатого текста используют zTXt. Для международного текста и Unicode-сценариев подходит iTXt, но поддержка зависит от сборки программы и окружения. В TweakPNG iTXt поддерживается в Unicode-сборке.
Как удалить текстовые метаданные
Порядок действий:
Открыть PNG.
Найти в таблице
tEXt,zTXt,iTXt.Выделить ненужные строки.
Нажать
Deleteили выбратьEdit → Delete.Запустить
File → Check Validity.Сохранить результат в новый файл.
Удаление текстовых chunks обычно не меняет внешний вид изображения. Но оно может удалить важные для конкретного workflow данные. Например, некоторые генераторы, редакторы, игровые форматы или внутренние инструменты сохраняют в PNG не только комментарий, а параметры, по которым файл затем повторно обрабатывается.
Работа с pHYs: физический размер, DPI и соотношение пикселей
pHYs хранит физический размер пикселя: количество пикселей на единицу по горизонтали и вертикали, а также признак единиц измерения. В пользовательских интерфейсах это часто воспринимается как DPI, хотя технически PNG хранит pixels per unit, чаще pixels per meter.
TweakPNG позволяет открыть pHYs и изменить значения без пересчёта пиксельной сетки. Это важный момент: если изображение 1000×1000 пикселей, после изменения pHYs оно останется 1000×1000. Меняется только метаинформация о физическом размере или соотношении пикселей.
Когда это полезно
pHYs имеет смысл редактировать, когда:
изображение нужно передать в программу, которая учитывает физический размер;
требуется изменить DPI-подобное значение без масштабирования;
файл должен корректнее интерпретироваться при печати;
нужно убрать странное значение вроде 1×1 pixel per unspecified unit;
нужно проверить, как приложение реагирует на нестандартное соотношение пикселей.
Как изменить pHYs
Открыть PNG.
Найти строку
pHYs.Если
pHYsнет, добавить черезInsert → pHYs (Pixel size, aspect ratio).Открыть chunk двойным щелчком.
Изменить горизонтальное и вертикальное значение.
Выбрать единицы, если поле доступно.
Нажать
OK.Проверить
Contents: TweakPNG показывает расшифровку вроде pixel size или DPI-подобного значения.Сохранить копию файла.
Ошибочно ждать, что после изменения pHYs картинка станет больше или меньше в пикселях. Это не resize. Это правка метаданных.
gAMA, sRGB и cHRM: цветовое поведение PNG
Цветовые chunks часто становятся причиной странного отображения PNG в разных программах. Один просмотрщик учитывает гамму, другой игнорирует, третий по-своему трактует sRGB. TweakPNG даёт прямой доступ к этим данным.
gAMA
gAMA хранит значение гаммы. В TweakPNG его можно просмотреть, добавить или изменить. Удаление gAMA может сделать отображение более предсказуемым в одной среде и менее предсказуемым в другой. Поэтому этот блок нельзя считать мусором автоматически.
gAMA полезен при диагностике случаев, когда изображение кажется светлее или темнее после экспорта, загрузки на сайт или открытия в другой программе.
sRGB
sRGB указывает, что изображение связано с пространством sRGB и определённым rendering intent. Наличие sRGB может влиять на то, как программа отображает цвета. Если в файле одновременно присутствуют разные цветовые указания, важно не создавать конфликт.
cHRM
cHRM хранит хроматические координаты белой точки и основных цветов. Это более технический блок, который редко редактируют вручную. Но TweakPNG позволяет увидеть его и понять, почему файл содержит дополнительные данные цветового управления.
iCCP
iCCP хранит ICC-профиль. В TweakPNG профиль можно импортировать через Import ICC Profile..., а сам chunk просмотреть и частично редактировать по имени. Это полезно, когда нужно встроить профиль, но не пересохранять файл через большой графический редактор.
Редактор палитры PLTE
PLTE — один из самых наглядных chunks в TweakPNG. Он хранит палитру индексированного PNG. В палитровом изображении пиксели ссылаются не на непосредственные RGB-значения, а на индексы палитры. Поэтому изменение одной ячейки PLTE может изменить все пиксели, которые на неё ссылаются.
При редактировании PLTE, а также при работе с bKGD и tRNS в палитровом PNG, открывается окно Palette.

В верхней части редактора видны:
Colors in palette (1–256);Alpha values;Set bkgd;Edit alpha;OK;Cancel.
Основная область — сетка цветов. Каждая ячейка соответствует одному цвету палитры. Если Set bkgd и Edit alpha не нажаты, щелчок по ячейке открывает выбор цвета. После изменения цвета все пиксели, использующие этот индекс, будут отображаться иначе.
Изменение цвета в палитре
Порядок действий:
Открыть PNG с
PLTE.Дважды щёлкнуть по
PLTE.Убедиться, что
Set bkgdиEdit alphaне активны.Щёлкнуть по нужной ячейке.
Выбрать новый цвет.
Нажать
OK.Открыть viewer через
Tools → Show Image Viewer.Проверить результат.
Такой способ удобен для иконок, пиксельной графики, старых веб-изображений, спрайтов и игровых ресурсов. Он не меняет индексы пикселей, а меняет значение цвета, на который эти индексы указывают.
Изменение количества цветов
Поле Colors in palette (1–256) меняет размер палитры. Увеличение палитры может быть полезно, если нужен новый цвет для фона или прозрачности. Уменьшение опасно: если удалить цвета, которые реально используются пикселями, файл станет некорректным. TweakPNG не превращает такое действие в полноценную оптимизацию палитры и не анализирует изображение как специализированный оптимизатор.
Почему палитра важна для скрытых данных
В палитровом PNG можно сделать два разных индекса с одинаковым RGB-цветом. Визуально они будут одинаковыми, но технически пиксели будут ссылаться на разные ячейки. TweakPNG позволяет увидеть такую ситуацию, потому что показывает саму палитру. Это делает программу полезной не только для редактирования, но и для анализа скрытых различий в индексированных изображениях.

На этом примере хорошо видно, зачем нужен низкоуровневый редактор PNG. Обычный просмотрщик может показывать изображение без очевидных отличий, но TweakPNG позволяет открыть палитру, изменить конкретную ячейку и увидеть, какие пиксели реально используют этот цветовой индекс.
Прозрачность через tRNS
tRNS хранит прозрачность. Для палитровых PNG этот chunk задаёт alpha-значения для отдельных цветов палитры. Значение 0 означает полную прозрачность, 255 — полную непрозрачность. Промежуточные значения задают частичную прозрачность.
В TweakPNG прозрачность палитры редактируется через кнопку Edit alpha в окне Palette.
Как изменить прозрачность палитрового цвета
Открыть PNG с палитрой.
Найти
tRNS.Если
tRNSотсутствует, добавить его черезInsert → tRNS (Transparency).Открыть
PLTEилиtRNS.В окне
PaletteнажатьEdit alpha.Щёлкнуть по нужной ячейке.
Ввести alpha-значение от
0до255.Нажать
OK.Проверить изображение через
Tools → Show Image Viewer.
В редакторе палитры короткая вертикальная линия внизу ячейки показывает примерное alpha-значение. Если линии нет, для этой ячейки нет отдельного alpha-значения, и цвет считается полностью непрозрачным. Значения 255 в конце списка часто избыточны, потому что полная непрозрачность используется по умолчанию. Если нужно полностью убрать прозрачность, правильнее удалить tRNS, а не пытаться свести все alpha-значения к нулевому количеству через палитру.
Фоновый цвет через bKGD
bKGD задаёт рекомендуемый фоновый цвет. Это не реальная заливка изображения и не замена прозрачности. Это подсказка для программ, которые хотят показать PNG на каком-то фоне, если другой фон не задан.
В палитровом PNG фон выбирается через редактор палитры:
Открыть файл.
Найти
bKGD.Если
bKGDнет, добавить черезInsert → bKGD (Background color).Открыть
PLTEилиbKGD.Нажать
Set bkgd.Щёлкнуть по ячейке палитры, которая должна быть фоновой.
Нажать
OK.
Фоновая ячейка отображается толстой синей рамкой. Если нужного цвета нет в палитре, можно увеличить Colors in palette, добавить новый цвет и выбрать его как фон. Удаление bKGD убирает рекомендацию фонового цвета, но не меняет пиксели изображения.
Этот сценарий был особенно актуален для старых веб-задач с PNG-прозрачностью и фоновыми цветами. Сейчас он тоже полезен при диагностике старых файлов, иконок, палитровых PNG и приложений, которые учитывают bKGD.
Редактирование IHDR: мощно, но опасно
IHDR — заголовок изображения. Он содержит ширину, высоту, bit depth, color type, compression method, filter method и interlace method. В TweakPNG его можно открыть и изменить, но это не означает, что программа конвертирует изображение.
Если в IHDR включить interlace-флаг, это не сделает фактический поток данных interlaced. Файл начнёт заявлять, что он interlaced, хотя данные могут остаться прежними. Аналогично, изменение ширины или высоты не пересчитывает пиксели. Это ручное изменение заявленных параметров. Оно может использоваться при восстановлении повреждённых PNG или CTF-задачах, но в обычной работе с изображениями это рискованный инструмент.
Когда редактирование IHDR оправдано:
файл повреждён, и нужно проверить гипотезу о неверной высоте или ширине;
нужно создать тестовый PNG с противоречивыми параметрами;
исследуется поведение конкретного декодера;
требуется ручная диагностика после повреждения заголовка.
Когда IHDR лучше не трогать:
нужно просто изменить размер картинки;
нужно сделать интерлейсинг;
нужно поменять цветовой режим;
нужно оптимизировать PNG для сайта.
Для таких задач подходят конвертеры и оптимизаторы, а не TweakPNG.
Встроенный просмотрщик изображения
В меню Tools есть команда Show Image Viewer. Она открывает отдельное окно предпросмотра текущего изображения. Viewer в TweakPNG пассивный: он отображает текущее состояние файла, но не является полноценным редактором. Его задача — быстро проверить, как изменения chunks влияют на отображение.
В viewer доступны функции:
просмотр текущего изображения;
Copy Image;Gamma Correction;настройка фона;
использование пользовательского background color;
использование image/custom background;
Strip Alpha Channel;Set Custom Background Color...;Correct for Nonsquare Pixels;масштабирование;
просмотр с разными zoom-уровнями.
Copy Image появился в истории программы как отдельная функция копирования изображения в буфер. Настройка Correct for nonsquare pixels стала опциональной. Viewer также умеет учитывать часть цветовой информации: он работает с gAMA и sRGB, но не является полноценной системой цветового управления для всех возможных профилей и chromaticity-данных. История программы отдельно фиксирует улучшения viewer, включая качество отображения изображений с частичной прозрачностью и изменения background color options.
Preferences
В Options → Preferences... находятся компактные настройки программы. Важная опция — Compression level for new zTXt chunks. Она управляет уровнем сжатия для новых zTXt-блоков. Это относится именно к сжатым текстовым chunks, а не к общему сжатию изображения.
Вторая важная настройка — Add TweakPNG to Explorer context menu. При включении этой опции в контекстном меню Windows Explorer появляется пункт TweakPNG для файлов .png, .mng, .jng. Двойной щелчок по файлу всё равно остаётся за стандартным просмотрщиком, но правый клик позволяет быстро открыть файл именно в TweakPNG.
Эта функция удобна, если TweakPNG используется как инструмент диагностики. Например, пользователь просматривает папку с PNG-файлами, находит подозрительный файл, открывает его через контекстное меню и сразу видит chunks без смены ассоциаций файлов в Windows.
Configure Tools
Options → Configure Tools... позволяет подключать внешние программы к меню Tools. Это одна из недооценённых возможностей TweakPNG: программа может быть центром ручной работы с PNG, а внешние утилиты — viewer или filter — подключаются как дополнительные действия.
В окне настройки используются поля:
Name;Program;Parameters.
Name — название команды, которое будет отображаться в меню Tools.
Program — путь к исполняемому файлу внешней программы. Если оставить поле пустым, Windows может открыть PNG в приложении по умолчанию.
Parameters — параметры командной строки. Для viewer их часто можно оставить пустыми. Если используется %1, TweakPNG подставит имя временного PNG-файла. Если используются %1 и %2, инструмент считается filter: TweakPNG создаёт временный входной файл, запускает внешнюю программу, ждёт выходной файл и затем читает результат обратно.
Пример логики viewer
Viewer не изменяет PNG. Он получает текущий временный файл и показывает его. Так можно подключить браузер, просмотрщик изображений или другое приложение, чтобы быстро сравнивать отображение.
Пример:
| Поле | Значение |
|---|---|
Name | Firefox |
Program | firefox.exe |
Parameters | пусто или %1 |
Пример логики filter
Filter изменяет PNG. Он получает входной файл и должен создать выходной файл.
Пример:
| Поле | Значение |
|---|---|
Name | pngrewrite |
Program | C:Program Filespngrewritepngrewrite.exe |
Parameters | %1 %2 |
Такой механизм полезен, если нужно сначала вручную проверить chunks, затем прогнать файл через внешний инструмент и вернуть результат в TweakPNG для повторной проверки.
Практическая инструкция: как посмотреть структуру PNG
Самая базовая задача — открыть файл и понять, что внутри.
Запустить TweakPNG.
Открыть PNG через
File → Open....Посмотреть первые строки таблицы.
Найти
IHDR: там указаны ширина, высота, bit depth, тип цвета и interlace.Проверить наличие
PLTE, если изображение палитровое.Посмотреть дополнительные chunks:
gAMA,cHRM,sRGB,iCCP,pHYs,tEXt,zTXt,iTXt.Найти
IDAT: один или несколько блоков с PNG image data.Проверить, что файл завершается
IEND.Запустить
File → Check Validity.
В Contents TweakPNG расшифровывает многие значения в человекочитаемом виде. Например, для IHDR видно что-то вроде: image header, размер, bit depth, тип цвета, interlace. Для pHYs отображается pixel size и DPI-подобная интерпретация. Для tIME — дата последнего изменения. Это ускоряет анализ: не нужно каждый раз открывать hex-редактор и вручную декодировать байты.
Практическая инструкция: как удалить лишние chunks
Ручное удаление chunks — одна из частых причин использовать TweakPNG. Но удалять нужно избирательно.
Открыть PNG.
Просмотреть список chunks.
Найти явно лишние текстовые или служебные блоки.
Выделить ненужный chunk.
Нажать
Delete.Повторить для других блоков.
Выполнить
File → Check Validity.Сохранить файл через
Save As....Сравнить размер и поведение изображения.
Обычно безопаснее начинать с текстовых chunks: tEXt, zTXt, iTXt. Удаление pHYs уберёт информацию о физическом размере. Удаление gAMA, cHRM, sRGB, iCCP может изменить цветовое поведение. Удаление bKGD убирает рекомендованный фон. Удаление tRNS может сломать прозрачность. Удаление PLTE в палитровом PNG разрушит изображение. Удаление IDAT, IHDR, IEND делает PNG непригодным для обычного просмотра.
TweakPNG не является массовым оптимизатором. Если цель — получить минимальный размер PNG для сайта, лучше использовать специализированные оптимизаторы. Если цель — понять, какие chunks есть, и вручную удалить конкретные блоки, TweakPNG подходит лучше.
Практическая инструкция: как добавить комментарий в PNG
Открыть изображение.
Выбрать
Insert → tEXt/zTXt/iTXt (Text).В редакторе указать keyword, например
Comment.Ввести текст комментария.
Нажать
OK.Проверить появление нового chunk в таблице.
Запустить
Check Validity.Сохранить копию файла.
Так можно добавить техническое описание, служебную заметку, авторский комментарий, внутреннюю маркировку или тестовые данные. Для простых англоязычных комментариев достаточно tEXt. Для длинных данных можно использовать zTXt, чтобы текст был сжат. Для Unicode-текста подходит iTXt.
Практическая инструкция: как изменить DPI без изменения пикселей
Открыть PNG.
Найти
pHYs.Если его нет, выбрать
Insert → pHYs (Pixel size, aspect ratio).Открыть
pHYs.Ввести нужные значения pixels per unit.
Выбрать единицы, если это требуется.
Нажать
OK.Проверить
Contents.Сохранить файл.
Если нужно именно изменить количество пикселей, TweakPNG не подходит. Для resize нужен графический редактор или конвертер. pHYs меняет только физическую интерпретацию уже существующих пикселей.
Практическая инструкция: как импортировать ICC-профиль
Открыть PNG.
Выбрать
Edit → Import ICC Profile....Выбрать файл
.icc.Проверить появление
iCCP.Запустить
Check Validity.Сохранить копию PNG.
Проверить отображение в программе, которая учитывает ICC-профили.
Перед импортом полезно проверить, нет ли в файле уже существующих sRGB, gAMA, cHRM и iCCP. Конфликтующие цветовые данные могут давать непредсказуемое отображение в разных программах.
Практическая инструкция: как объединить IDAT
Открыть PNG.
Найти последовательность
IDAT.Выбрать
Edit → Combine All IDAT.Проверить, что несколько
IDATпревратились в один или меньшее количество блоков.Выполнить
Check Validity.Сохранить копию файла.
Функция не пересжимает изображение. Она только объединяет контейнерные блоки. Размер может уменьшиться на 12 байт за каждый устранённый chunk. Это полезно для чистоты структуры, но не заменяет полноценную PNG-оптимизацию.
Практическая инструкция: как разделить IDAT
Открыть PNG.
Выделить
IDAT.Выбрать
Edit → Split IDAT....Указать размер первого блока.
Оставить
Repeat...выключенным, если нужно разделить на две части.Включить
Repeat..., если нужно нарезать на множество блоков одинакового размера.Проверить порядок
IDAT.Запустить
Check Validity.
Эта функция нужна в основном для тестирования. Например, разработчик пишет PNG decoder и хочет проверить, как он обрабатывает файл, где image data split across many chunks.
Практическая инструкция: как изменить прозрачность палитрового PNG
Открыть палитровый PNG.
Убедиться, что есть
PLTE.Найти
tRNS; если его нет, добавить черезInsert → tRNS (Transparency).Открыть
PLTEдвойным щелчком.Нажать
Edit alpha.Щёлкнуть по нужному цвету.
Ввести alpha от
0до255.Нажать
OK.Проверить картинку в viewer.
Так можно сделать конкретный палитровый цвет прозрачным или полупрозрачным. Но если изображение не палитровое, логика работы с прозрачностью будет другой. TweakPNG не превращает обычный truecolor PNG в палитровый редактор с магическим управлением alpha-каналом.
Практическая инструкция: как задать bKGD
Открыть PNG.
Добавить
bKGD, если его нет.Открыть палитру или
bKGD.Нажать
Set bkgd.Выбрать цвет.
Нажать
OK.Проверить результат в viewer с фоном.
bKGD не закрашивает прозрачность. Он задаёт рекомендуемый background color. В некоторых сценариях это помогает добиться корректного предпросмотра или совместимости со старым софтом.
Практическая инструкция: как проверить повреждённый PNG
TweakPNG может помочь при ручной диагностике повреждённых файлов, если структура частично читается.
Открыть файл.
Проверить, отображается ли таблица chunks.
Посмотреть, есть ли
IHDR.Проверить, идут ли
IDATподряд.Проверить наличие
IEND.Запустить
Check Validity.Посмотреть, на какой области возникает проблема.
При необходимости сравнить с рабочим PNG похожего типа.
Не перезаписывать исходный файл.
TweakPNG не является автоматическим восстановителем изображений. Она не лечит файл одной кнопкой. Но она позволяет увидеть структуру и вручную проверить гипотезы: неправильная высота, повреждённый порядок chunks, лишний или отсутствующий блок, странные metadata, неверная сигнатура.
История версий программы
История TweakPNG хорошо показывает, как программа развивалась: от простого низкоуровневого редактора PNG к инструменту с палитрой, контекстным меню, viewer, APNG-служебными блоками, фильтрами, 64-битной сборкой и улучшенной работой с ICC-профилями.
| Этап | Что изменилось |
|---|---|
| 1999 | первый публичный выпуск |
| 1999, v1.0.1 | улучшена обработка многих invalid files, добавлена автоматическая validation on Save |
| 2000, v1.1.0 | появился palette editing, включая bKGD и tRNS для палитровых изображений; добавлен Combine all IDAT; появились persistent window sizes и context menu |
| 2001, v1.1.1 | исправлена проблема с записью неправильного CRC после редактирования IHDR |
| 2003, v1.1.2 | добавлена опция интеграции в Windows Explorer context menus; предупреждение при выходе без сохранения |
| 2003, v1.2.0 | добавлен Tools → Show Image Viewer; palette editor стал использоваться для выбора grayscale background и transparent colors |
| 2004, v1.2.1 | обновлены zlib и libpng, добавлены небольшие улучшения и исправления |
| 2008, v1.3.0 | добавлена поддержка iTXt; бинарная сборка стала Unicode-приложением; лицензия изменилась на GPLv3 |
| 2008, v1.3.1 | добавлена полная поддержка sTER; read-only support for APNG chunks; улучшена устойчивость при редактировании chunk неверного размера |
| 2009, v1.3.2 | исправлены ошибки восстановления положения дополнительных окон и позиционирования context menu на нескольких мониторах |
| 2010, v1.4.0 | добавлена полная поддержка oFFs, acTL, fcTL; появились filters, добавлены Close и Reopen |
| 2011, v1.4.1 | добавлена поддержка 64-bit builds, sCAL, drag/drop onto viewer window |
| 2011, v1.4.2 | переписан PNG decoder во viewer; gamma correction стала немного точнее |
| 2012, v1.4.4 | улучшена поддержка ICC profiles и качество viewer для изображений с частичной прозрачностью |
| 2012, v1.4.5 | исправления и улучшения compressed text; изменены background color options во viewer |
| 2014, v1.4.6 | maintenance release, добавлено Copy image to clipboard, Correct for nonsquare pixels стало опциональным |
Эта история важна не как формальность. Она объясняет, почему в программе есть функции, которые на первый взгляд кажутся странными: MNG/JNG signature, APNG chunks, filters, sTER, sCAL, vpAg, viewer, работа с несжатыми и сжатыми текстовыми блоками. TweakPNG развивался как технический инструмент для людей, которым нужно не просто открыть PNG, а управлять деталями формата.
MNG, JNG и APNG
TweakPNG ориентирован прежде всего на PNG, но в программе есть элементы поддержки родственных форматов и расширений. В меню и истории присутствуют MNG/JNG-сценарии, а также APNG chunks acTL, fcTL, fdAT.
Важно отделять поддержку структуры от полноценного редактора анимации. TweakPNG может показывать, перемещать, удалять или частично редактировать некоторые chunks, но это не редактор анимированных PNG в привычном смысле. Он не предназначен для монтажа кадров, таймингов и визуальной сборки анимации как специализированный APNG-редактор. Его задача — показать и дать доступ к блокам.
Для MNG программа также не является полноценным интерпретатором всех MNG-специфичных chunks. Она может работать с ними на уровне структуры, но не всегда понимает их содержимое так же глубоко, как обычные PNG chunks. Это нужно учитывать при ручной правке: файл может быть структурно сложнее, чем стандартный одиночный PNG.
Сильные стороны TweakPNG
TweakPNG хорош не количеством эффектов, а точностью доступа к данным. Его преимущества особенно заметны в технических задачах.
Прямой доступ к chunks
Главный плюс — таблица chunks. Пользователь сразу видит структуру файла. Это быстрее и понятнее, чем hex-редактор, но гораздо точнее, чем обычный viewer.
Редактирование метаданных без пересохранения через большой редактор
Можно изменить tEXt, zTXt, iTXt, pHYs, gAMA, tIME, bKGD, tRNS, PLTE и другие данные без открытия файла в тяжёлом графическом пакете.
Работа с палитрой
Редактор PLTE удобен для индексированных PNG. Можно изменить цвет, фон и alpha-значения, не перерисовывая само изображение.
Ручная диагностика
TweakPNG помогает понять, почему PNG отличается от ожидаемого: есть ли gAMA, записан ли pHYs, есть ли текстовые данные, сколько IDAT, какой CRC, есть ли iCCP.
Подключение внешних tools
Через Configure Tools можно встроить viewer или filter в рабочий процесс.
Portable-логика
Программа не требует сложной установки. Её можно держать как техническую утилиту рядом с другими инструментами анализа PNG.
Открытый исходный код
TweakPNG распространяется как свободное ПО под GPLv3, а исходный код включён в проект. Это важно для доверия к программе, которая работает с файлами локально и может использоваться в технической диагностике.
Ограничения и риски
TweakPNG требует аккуратности. Это не программа, где любые действия безопасны и обратимы.
Можно легко сломать файл
Удаление или перемещение критических chunks может сделать PNG нечитаемым. Даже ancillary chunks нельзя удалять бездумно: они могут быть важны для цвета, прозрачности, физического размера или workflow.
Редактирование IHDR не конвертирует изображение
Изменение параметров в IHDR меняет заявленные свойства, но не пересобирает пиксельные данные. Это может дать невалидный или противоречивый PNG.
Нет массовой обработки
TweakPNG — интерактивный редактор. Для сотен файлов лучше использовать ExifTool, pngcrush, OptiPNG, oxipng или скрипты.
Нет художественного редактирования
Программа не рисует, не ретуширует, не меняет размер изображения, не работает со слоями и не предназначена для визуального дизайна.
Нужны знания PNG
Без понимания разницы между IHDR, PLTE, IDAT, tRNS, gAMA, pHYs и iCCP легко сделать неправильные выводы. TweakPNG помогает изучать формат, но не отменяет необходимости понимать, что именно редактируется.
Viewer ограничен
Встроенный просмотрщик удобен для проверки, но он не заменяет полноценные приложения с развитым цветовым управлением.
Безопасность и приватность
TweakPNG работает локально. Файл открывается на компьютере пользователя и не требует загрузки на внешний сервис. Для задач с приватными изображениями, техническими скриншотами, внутренними assets или forensic-материалами это существенное преимущество перед онлайн-инспекторами PNG.
Открытый исходный код и GPLv3 также важны: программу можно проверить, собрать, изучить её поведение и использовать в закрытом локальном workflow. При этом сама природа инструмента требует осторожности: TweakPNG может изменить файл так, что другие программы перестанут его читать. Для любой серьёзной работы нужно сохранять копию исходника.
Производительность и удобство в работе
TweakPNG лёгкий и быстрый, потому что не загружает полноценную среду редактирования изображений. Главная таблица открывается быстро, а просмотр chunks не требует тяжёлого анализа пикселей. Даже если PNG содержит много IDAT, программа показывает структуру в виде строк, где каждый блок можно выделить и изучить.
Удобство особенно заметно в повторяющихся ручных задачах:
открыть PNG;
посмотреть
pHYs;удалить текстовый блок;
проверить
gAMA;открыть палитру;
скопировать chunk;
вставить chunk в другой файл;
проверить валидность;
сохранить копию.
При этом интерфейс старомодный. Он не пытается быть современным, не имеет русской локализации и не объясняет новичку каждое поле. Это инструмент для пользователя, который знает, зачем пришёл.
Сравнение с аналогами
В этой категории нет идеальной универсальной замены. Одни инструменты лучше проверяют валидность, другие лучше удаляют metadata пакетно, третьи эффективнее оптимизируют PNG, четвёртые удобнее для визуального просмотра.
| Программа | Тип | Что делает лучше всего | Когда выбрать |
|---|---|---|---|
| pngcheck | CLI validator/debugger | проверка CRC, структуры и chunk-level information | когда нужно быстро проверить целостность и вывести техническую информацию |
| ExifTool | CLI metadata tool | массовое чтение, запись и удаление метаданных во множестве форматов | когда нужно обработать много файлов или управлять metadata через скрипты |
| pngcrush | CLI PNG optimizer | подбор compression/filter methods, уменьшение IDAT, удаление/добавление ancillary chunks | когда нужна оптимизация размера и работа из командной строки |
| OptiPNG | CLI PNG optimizer | lossless recompression, integrity checks, corrections | когда нужно автоматически уменьшить PNG без ручного редактирования |
| oxipng | CLI optimizer | быстрая современная lossless-оптимизация PNG | когда важна пакетная оптимизация в build-процессе |
| ImageMagick | CLI/GUI toolkit | конвертация, resize, преобразования изображений | когда нужно менять пиксели, размер, формат, цветовой режим |
| GIMP | графический редактор | визуальная обработка и экспорт PNG | когда нужно редактировать изображение, а не chunks |
| XnView MP | просмотрщик и конвертер | просмотр, пакетные операции, базовые metadata | когда нужен удобный менеджер изображений, а не низкоуровневый PNG editor |
| Nayuki PNG File Chunk Inspector | веб-инспектор | быстрый просмотр chunks в браузере | когда нужно посмотреть структуру без установки локального приложения |
pngcheck сильнее как проверяющий инструмент: он проверяет integrity PNG/JNG/MNG, CRC и может выводить почти всю chunk-level information в человекочитаемом виде. Но он не является интерактивным GUI-редактором chunks.
ExifTool сильнее в пакетной работе с metadata. Для PNG он умеет работать с XMP, EXIF, ICC_Profile и native PNG textual data chunks. Но его логика — командная строка и теги, а не визуальное перемещение chunks в таблице.
pngcrush и OptiPNG сильнее в оптимизации. pngcrush уменьшает размер IDAT за счёт перебора compression levels и PNG filter methods, а также может удалять или добавлять некоторые ancillary chunks. OptiPNG recompresses PNG без потери информации и выполняет integrity checks and corrections. Но оба инструмента не дают такого удобного ручного просмотра и редактирования каждого блока в GUI.
Где TweakPNG особенно полезен
Веб-разработка
В веб-разработке PNG часто оптимизируют автоматически, но иногда нужно понять, почему конкретный файл ведёт себя иначе. Например, после экспорта изображение стало темнее, браузер иначе показывает прозрачность, favicon или sprite содержит странные metadata, а оптимизатор не удаляет нужный блок. TweakPNG позволяет открыть файл и быстро проверить gAMA, sRGB, iCCP, pHYs, tRNS, bKGD.
Игровые ресурсы и спрайты
Палитровые PNG, иконки, spritesheets и старые assets часто используют PLTE и tRNS. В TweakPNG можно вручную посмотреть палитру, изменить прозрачность цвета, увидеть лишние или повторяющиеся цвета и проверить, какие служебные chunks есть в файле.
CTF и форензика
PNG часто используется в задачах, где данные спрятаны в chunks, палитре, неправильной высоте, текстовых блоках или нестандартной структуре. TweakPNG помогает быстро увидеть, есть ли подозрительные chunks, много ли IDAT, есть ли текстовые данные, корректен ли IHDR, что находится в палитре.
Тестирование PNG-парсеров
Разработчику декодера или импортёра PNG нужны тестовые файлы: с несколькими IDAT, с нестандартными ancillary chunks, с разным порядком допустимых блоков, с палитрой, прозрачностью, gamma, physical pixel size. TweakPNG позволяет создавать такие файлы вручную и проверять реакцию приложения.
Чистка metadata
Если нужно удалить конкретные текстовые chunks или служебные данные из одного файла, TweakPNG удобнее командной строки. Пользователь видит, что удаляет, и может сохранить копию.
Где TweakPNG использовать не стоит
TweakPNG не подходит для задач, где нужен обычный графический workflow.
Не стоит использовать программу для:
изменения размера изображения;
сжатия сотен PNG;
художественной ретуши;
рисования прозрачности кистью;
цветокоррекции фотографии;
пакетного удаления metadata;
подготовки изображений к печати без понимания цветового управления;
массовой web-оптимизации;
конвертации PNG в другие форматы.
Для таких задач лучше выбрать редактор, конвертер или оптимизатор. TweakPNG нужно открывать тогда, когда вопрос звучит не как красиво обработать картинку, а что именно записано внутри PNG и как изменить конкретный chunk.
Техническая логика работы с CRC
Каждый PNG chunk содержит CRC. В таблице TweakPNG есть отдельный столбец CRC, где отображается контрольная сумма блока. Это полезно при диагностике повреждений и ручных изменений. Пользователь видит, что у каждого chunk есть собственная контрольная сумма, а не только общий статус файла.
TweakPNG пересчитывает CRC при сохранении изменённого chunk. История программы отдельно фиксирует исправление ошибки, связанной с записью неправильного CRC после редактирования IHDR, что подчёркивает важность этой части формата для корректного сохранения PNG.
Для пользователя это означает простую вещь: при редактировании через TweakPNG не нужно вручную считать CRC. Но при импортировании внешнего chunk нужно правильно подготовить его содержимое: TweakPNG ожидает имя chunk и данные, а длину и CRC создаёт сам.
Работа с нестандартными и private chunks
PNG допускает расширяемую структуру. В файле могут быть private chunks, которые не входят в стандартный набор. TweakPNG полезен тем, что не скрывает такие блоки. Он может показать их в таблице, позволить удалить, переместить, скопировать, экспортировать или импортировать, даже если не умеет полностью расшифровать содержимое.
Это важно для форматов, где PNG используется как контейнер. Некоторые приложения сохраняют в PNG дополнительные данные: параметры сцены, описание слоя, настройки генерации, данные игры, служебные блоки редактора. Обычный viewer покажет только изображение, а TweakPNG покажет присутствие дополнительных chunks.
Но private chunks нельзя удалять автоматически. Для обычного просмотра они могут быть не нужны, но для исходной программы они могут быть критичны. Например, изображение откроется как PNG, но потеряет возможность повторного редактирования в приложении, которое записало внутрь собственные данные.
Типичный рабочий процесс
Хороший безопасный workflow в TweakPNG выглядит так:
Открыть исходный PNG.
Сразу сохранить копию через
Save As..., если планируются изменения.Изучить таблицу chunks.
Определить цель: удалить metadata, изменить
pHYs, проверить цветовые chunks, изменить палитру, импортировать профиль.Вносить изменения по одному.
После каждого важного действия запускать
Check Validity.Проверять изображение через
Tools → Show Image Viewer.При необходимости открыть файл во внешнем viewer через
Configure Tools.Не перезаписывать единственный оригинал.
Финально проверить файл в той программе, для которой он готовится.
Такой подход снижает риск. TweakPNG даёт мощный ручной контроль, но не спасает от неправильной логики пользователя.
Ошибки, которые часто делают при работе с TweakPNG
Удаляют все ancillary chunks без проверки
Не все дополнительные chunks лишние. gAMA, sRGB, iCCP, pHYs, tRNS, bKGD могут быть важны. Удаление текстовых комментариев обычно безопаснее, но даже они могут быть частью workflow.
Изменяют IHDR как инструмент resize
IHDR не масштабирует изображение. Изменение ширины или высоты без пересборки IDAT часто создаёт некорректный файл.
Перемещают IDAT
IDAT-блоки должны идти подряд. Их нельзя тасовать как обычные metadata chunks.
Думают, что Check Validity всё гарантирует
Check Validity проверяет базовую структуру и порядок, но не доказывает полную корректность данных внутри каждого chunk.
Используют TweakPNG вместо оптимизатора
Для ручного удаления конкретного chunk программа хороша. Для максимального сжатия лучше pngcrush, OptiPNG или oxipng.
Не сохраняют копию
Низкоуровневое редактирование нужно делать только на копии. Даже одно неверное действие может испортить файл.
Плюсы
показывает PNG на уровне chunks;
отображает
Chunk,Length,CRC,Attributes,Contents;позволяет редактировать многие metadata chunks;
умеет добавлять новые chunks через
Insert;поддерживает текстовые блоки
tEXt,zTXt,iTXt;есть редактор палитры
PLTE;есть работа с прозрачностью
tRNS;есть выбор фонового цвета
bKGD;можно менять
pHYs;можно работать с
gAMA,cHRM,sRGB;есть импорт ICC-профиля;
можно объединять и разделять
IDAT;есть импорт и экспорт chunks;
есть
Check Validity;есть встроенный viewer;
есть подключение внешних tools;
программа лёгкая и локальная;
подходит для диагностики, тестирования и forensic-задач.
Минусы
не подходит новичкам без понимания PNG;
интерфейс старый и технический;
нет русской локализации;
нет пакетной обработки;
нет художественного редактирования;
легко сделать файл невалидным;
viewer ограничен;
не заменяет pngcheck для глубокой проверки;
не заменяет ExifTool для массовой metadata-обработки;
не заменяет pngcrush, OptiPNG или oxipng для оптимизации;
часть функций полезна только специалистам.
Кому подходит TweakPNG
TweakPNG стоит использовать тем, кто понимает, зачем ему нужен PNG chunk editor.
Программа подходит:
веб-разработчикам;
тестировщикам;
разработчикам игр;
специалистам по оптимизации изображений;
людям, которые анализируют metadata;
CTF-участникам;
digital forensics-специалистам;
авторам инструментов, которые читают PNG;
пользователям, которым нужно изменить конкретный chunk;
тем, кто хочет изучить PNG file structure на практике.
TweakPNG не предназначен для массового пользователя, который хочет улучшить картинку. Это инструмент для тех, кто хочет увидеть и изменить то, что обычные редакторы скрывают.
Кому лучше выбрать другой инструмент
Если нужно просто просмотреть PNG, лучше использовать XnView MP, IrfanView, FastStone Image Viewer или стандартный просмотрщик.
Если нужно редактировать изображение, лучше использовать GIMP, Krita, Paint.NET, Photoshop или Photopea.
Если нужно пакетно удалить metadata, лучше выбрать ExifTool.
Если нужно проверить файл из командной строки, лучше выбрать pngcheck.
Если нужно уменьшить размер PNG, лучше использовать pngcrush, OptiPNG, oxipng, zopflipng или FileOptimizer.
Если нужно массово конвертировать изображения, лучше использовать ImageMagick, XnConvert или NConvert.
TweakPNG занимает другое место: ручной низкоуровневый контроль над конкретным PNG.
Итоговая оценка
TweakPNG — редкий пример программы, которая не пытается быть универсальной и именно поэтому остаётся полезной. Она не красивая, не современная и не рассчитана на случайного пользователя. Зато она делает то, что многие большие редакторы не делают вообще: показывает PNG как структуру chunks и даёт вручную управлять этими блоками.
Её главные задачи — просмотр структуры PNG, редактирование PNG metadata, работа с палитрой, прозрачностью, гаммой, физическим размером пикселя, текстовыми chunks, ICC-профилем и диагностикой валидности. В умелых руках TweakPNG помогает быстро понять, что внутри файла, почему он ведёт себя нестандартно и как точечно изменить нужный элемент без полного пересохранения изображения.
Это не программа для всех. Это инструмент для точной работы с PNG. Если задача техническая, TweakPNG часто оказывается быстрее и понятнее, чем hex-редактор, и нагляднее, чем командная строка.
FAQ
Можно ли в TweakPNG редактировать изображение как в Photoshop?
Нет. TweakPNG не предназначена для рисования, ретуши, слоёв, кистей и фильтров. Она редактирует структуру PNG и метаданные, а не изображение как художественный объект.
Можно ли удалить метаданные PNG?
Да. В TweakPNG можно удалить текстовые и служебные chunks, например tEXt, zTXt, iTXt, а также другие ancillary chunks. Но удалять нужно осознанно: некоторые блоки влияют на цвет, прозрачность, фон или физическое разрешение.
Можно ли изменить DPI?
Можно изменить pHYs, где хранится физический размер пикселя. Это меняет DPI-подобную интерпретацию файла, но не меняет количество пикселей.
Можно ли импортировать ICC-профиль?
Да. Для этого есть команда Import ICC Profile..., которая создаёт iCCP chunk из .icc-профиля.
Можно ли восстановить повреждённый PNG?
TweakPNG может помочь вручную диагностировать и частично исправить структуру, если файл открывается хотя бы частично. Но это не автоматический repair-tool.
Можно ли изменить прозрачность?
Да, особенно удобно это делать в палитровых PNG через tRNS и редактор палитры. Для палитрового цвета можно задать alpha-значение от 0 до 255.
Можно ли изменить цвет в палитре?
Да. При редактировании PLTE открывается окно Palette, где можно выбрать ячейку и поменять её цвет. Все пиксели, которые используют этот индекс, начнут отображаться новым цветом.
Можно ли объединить IDAT?
Да. Команда Combine All IDAT объединяет несколько IDAT chunks. Это уменьшает накладные расходы на 12 байт за каждый устранённый chunk, но не является полноценной оптимизацией сжатия.
Чем TweakPNG отличается от pngcheck?
pngcheck лучше подходит для проверки и вывода технической информации из командной строки. TweakPNG удобнее для интерактивного просмотра, удаления, перемещения, импорта, экспорта и редактирования chunks.
Чем TweakPNG отличается от ExifTool?
ExifTool сильнее в пакетной работе с metadata и поддерживает множество форматов. TweakPNG удобнее, когда нужно визуально увидеть структуру конкретного PNG и вручную изменить отдельные chunks.
Безопасно ли удалять gAMA, cHRM, sRGB и iCCP?
Не всегда. Эти chunks могут влиять на отображение цвета. Их удаление иногда помогает убрать нежелательное цветовое поведение, но может и ухудшить предсказуемость отображения.
Можно ли использовать TweakPNG для APNG?
В программе есть работа с APNG chunks вроде acTL и fcTL, но TweakPNG не является полноценным редактором APNG-анимации. Его лучше рассматривать как chunk-level tool, а не как animation editor.
