TweakPNG: программа для работы с PNG
TweakPNG — компактная Windows-утилита для низкоуровневого просмотра и изменения PNG-файлов. Это не графический редактор в стиле Paint.NET, GIMP или Photoshop: в программе нет кистей, слоев, фильтров, кадрирования, цветокоррекции фотографии и привычного холста. TweakPNG работает с внутренней структурой файла PNG: показывает chunks, длину блока, CRC, атрибуты, содержимое служебных секций, текстовые метаданные, параметры палитры, прозрачности, гаммы, физического размера пикселя и другие данные, которые обычно скрыты от пользователя.
Скачать TweakPNG
Для сжатия и оптимизации файлов
Главная ценность TweakPNG в том, что программа показывает PNG не как картинку, а как последовательность структурных блоков. Пользователь видит IHDR, PLTE, gAMA, cHRM, pHYs, tEXt, zTXt, iTXt, tRNS, IDAT, IEND и другие chunks. Такой подход нужен там, где обычный просмотрщик изображения бесполезен: при проверке PNG-файла, удалении лишних метаданных, исследовании скрытых текстовых блоков, настройке прозрачности палитры, добавлении комментариев, анализе поврежденного файла, подготовке тестовых изображений для приложений и работе с цифровой криминалистикой.
TweakPNG особенно удобен тем, что не заставляет сразу открывать hex-редактор. В HxD или 010 Editor можно увидеть байты, но придется вручную искать длину chunk, тип, данные и CRC. В TweakPNG эти части уже разложены в таблицу. Программа показывает тип блока, его размер, контрольную сумму, свойства и человекочитаемое описание содержимого. Поэтому TweakPNG часто используют как PNG chunk editor: он остается техническим инструментом, но дает более понятный интерфейс, чем чистое редактирование бинарного файла.
При этом TweakPNG не стоит воспринимать как безопасный улучшатель PNG. Программа дает прямой доступ к структуре файла, поэтому неправильное изменение IHDR, перестановка IDAT или удаление обязательного блока легко делает изображение нечитаемым. TweakPNG подходит пользователям, которые понимают, что PNG-файл состоит из сигнатуры и набора chunks, а критические блоки должны находиться в правильном порядке.
Содержание
- 1 Назначение программы
- 2 Установка и запуск
- 3 Интерфейс главного окна
- 4 Меню File
- 5 Меню Edit
- 6 Меню Insert
- 7 Меню Options
- 8 Меню Tools и встроенный просмотрщик
- 9 Открытие PNG и чтение структуры файла
- 10 Проверка файла через Check Validity
- 11 Редактирование PNG Header через IHDR
- 12 Работа с текстовыми метаданными tEXt, zTXt и iTXt
- 13 Редактирование gAMA
- 14 Редактирование cHRM
- 15 Редактирование sRGB
- 16 Редактирование pHYs: физический размер пикселя
- 17 Редактирование tIME
- 18 Палитра PLTE
- 19 Прозрачность tRNS
- 20 Фоновый цвет bKGD
- 21 Работа с IDAT
- 22 Импорт и экспорт chunks
- 23 Import ICC Profile
- 24 File Signature: PNG, MNG, JNG
- 25 Configure Tools: подключение внешних программ
- 26 Практический сценарий: удалить лишние chunks
- 27 Практический сценарий: добавить комментарий в PNG
- 28 Практический сценарий: проверить подозрительный PNG
- 29 Практический сценарий: изменить прозрачность палитрового PNG
- 30 Практический сценарий: задать физический размер пикселя
- 31 Практический сценарий: подготовить тестовый PNG
- 32 Поддерживаемые chunks и ограничения редактирования
- 33 Особенности работы с MNG и JNG
- 34 Сильные стороны TweakPNG
- 35 Ограничения и риски
- 36 Сравнение с аналогами
- 37 Когда TweakPNG лучше не использовать
- 38 Таблица характеристик
- 39 Итоговая оценка
Назначение программы
TweakPNG нужен для точечной работы с PNG-структурой. В обычной обработке изображений программа выглядит непривычно: пользователь открывает файл и видит не саму картинку, а таблицу. В этой таблице каждая строка — отдельный chunk, то есть логический блок PNG-файла. Именно поэтому TweakPNG полезен не дизайнеру, который хочет быстро улучшить фотографию, а специалисту, которому нужно понять, что находится внутри файла.
В TweakPNG можно:
-
просматривать структуру PNG на уровне chunks;
-
проверять порядок блоков и наличие обязательных частей;
-
смотреть CRC каждого chunk;
-
редактировать доступные служебные блоки;
-
добавлять новые chunks через меню Insert;
-
удалять лишние ancillary chunks;
-
добавлять и изменять текстовые метаданные
tEXt,zTXt,iTXt; -
изменять
gAMA,cHRM,sRGB,pHYs,tIME; -
просматривать и редактировать палитру
PLTE; -
изменять прозрачность палитрового PNG через
tRNS; -
задавать фоновый цвет через
bKGD; -
импортировать ICC-профиль в
iCCP; -
объединять и разделять
IDAT; -
копировать, вырезать и вставлять chunks;
-
переносить chunk из одного PNG в другой;
-
подключать внешние просмотрщики и фильтры через Configure Tools;
-
использовать встроенный просмотрщик через Tools → Show Image Viewer.
Программа не занимается сжатием PNG в привычном смысле, хотя отдельные операции могут уменьшить файл. Например, удаление лишнего текстового блока или объединение нескольких IDAT экономит место. Но TweakPNG не заменяет OptiPNG, Oxipng или Pngcrush: оптимизаторы пересобирают файл и подбирают методы сжатия, а TweakPNG дает ручной контроль над внутренними блоками.
Установка и запуск
TweakPNG распространяется как архив. У программы нет сложного установщика, мастера установки, рекламных предложений и отдельного процесса фоновой службы. Рабочий сценарий простой: распаковать архив в отдельную папку и запустить исполняемый файл.
В архиве используются две основные версии исполняемого файла:
-
x86tweakpng.exe— 32-битная версия; -
x64tweakpng.exe— 64-битная версия.
На 64-битной Windows лучше запускать x64tweakpng.exe. На 32-битной системе используется x86tweakpng.exe. Программа подходит для старых и новых версий Windows, а ее интерфейс выполнен в классическом стиле Win32-приложений: простое окно, меню сверху, таблица с колонками, строка состояния снизу.
Удаление такое же простое, как установка: достаточно удалить папку с программой. Если пользователь включал интеграцию с контекстным меню Windows Explorer, настройки могут сохраняться в пользовательской ветке реестра, поэтому при полном удалении имеет смысл отключить интеграцию заранее или удалить соответствующие пользовательские настройки.
После первого запуска TweakPNG открывается пустым окном. В нем уже видны основные элементы интерфейса: меню File, Edit, Insert, Options, Tools, Help, а также таблица с колонками Chunk, Length, CRC, Attributes, Contents.
Такой стартовый экран хорошо показывает принцип программы. Пока PNG-файл не открыт, таблица пустая. После открытия изображения строки заполняются chunks, а внизу появляется размер файла.
Интерфейс главного окна
Главное окно TweakPNG состоит из нескольких понятных частей. Вверху находится строка меню, под ней — таблица chunks, внизу — строка состояния. Интерфейс не перегружен: программа не пытается быть универсальным графическим редактором и не показывает панель инструментов с десятками иконок. Основная рабочая область — таблица, где каждая строка соответствует одному блоку PNG-файла.
Колонки таблицы:
| Колонка | Что показывает |
|---|---|
| Chunk | четырехбуквенный код блока: IHDR, IDAT, IEND, tEXt, pHYs и другие |
| Length | размер данных внутри chunk в байтах |
| CRC | контрольная сумма chunk |
| Attributes | свойства chunk: critical/ancillary, safe/unsafe to copy и другие атрибуты |
| Contents | расшифровка содержимого: размеры изображения, гамма, физический размер, текст, палитра, данные изображения |
Колонка Chunk нужна для быстрого понимания структуры файла. Например, обычный PNG начинается с IHDR, содержит один или несколько IDAT и заканчивается IEND. Колонка Length помогает увидеть, какие блоки занимают больше всего места. Чаще всего основная масса данных находится в IDAT, потому что именно там лежит сжатый поток пикселей. Колонка CRC полезна при проверке целостности. Колонка Attributes показывает тип блока: критический или вспомогательный, безопасный или небезопасный для копирования. Колонка Contents делает работу удобнее: вместо голых байтов TweakPNG выводит понятное описание.
В рабочем окне можно менять ширину колонок. Если описание в Contents длинное, удобно растянуть эту колонку. Если нужно сосредоточиться на CRC или длине, можно сузить остальные поля. Для редактирования chunk достаточно дважды щелкнуть по строке или выделить строку и нажать Enter. Не все blocks редактируются, но для большинства служебных PNG chunks TweakPNG открывает отдельное окно с конкретными полями.

На скриншоте видно, как TweakPNG представляет PNG-файл. В таблице отображаются IHDR, cHRM, gAMA, PLTE, tRNS, bKGD, pHYs, tIME, несколько IDAT. В строке состояния показан общий размер файла. Такой вид сразу помогает понять, что изображение палитровое, содержит прозрачность, фоновый цвет, гамму, chromaticities, физический размер пикселя и время последнего изменения.
Меню File
Меню File отвечает за создание, открытие, сохранение и проверку файла. В нем находятся команды:
| Команда | Горячая клавиша | Назначение |
|---|---|---|
| New | Ctrl+N | создать новый документ |
| Open… | Ctrl+O | открыть PNG, MNG или JNG |
| Reopen | Ctrl+R | заново открыть текущий файл |
| Save | Ctrl+S | сохранить изменения |
| Save As… | Ctrl+Shift+S / F12 | сохранить копию под другим именем |
| Close | — | закрыть текущий документ |
| Check Validity | F5 | проверить структуру файла |
| File Signature… | — | выбрать сигнатуру PNG, MNG или JNG |
| Exit | Alt+F4 | закрыть программу |
В реальной работе важнее всего связка Open…, Check Validity и Save As…. Оригинальный PNG лучше не перезаписывать сразу: безопаснее открыть файл, внести изменения, проверить его через Check Validity, а затем сохранить результат как копию. Это особенно важно при редактировании IHDR, PLTE, tRNS, IDAT и нестандартных chunks.
Команда Reopen удобна, когда файл был изменен сторонним инструментом или пользователь хочет быстро вернуть исходное состояние после эксперимента. Close закрывает текущий документ, не завершая работу с программой. File Signature… относится к более редким операциям: она позволяет выбрать сигнатуру файла из вариантов PNG, MNG, JNG.
Меню Edit
Меню Edit — главный рабочий раздел для изменения уже существующих chunks. В нем находятся команды:
| Команда | Горячая клавиша | Что делает |
|---|---|---|
| Edit Chunk… | Enter | открыть окно редактирования выделенного chunk |
| Delete | Del | удалить выделенный chunk |
| Move Up | Alt+Up | переместить chunk выше |
| Move Down | Alt+Down | переместить chunk ниже |
| Cut | Ctrl+X | вырезать chunk в буфер обмена |
| Copy | Ctrl+C | скопировать chunk |
| Paste | Ctrl+V | вставить chunk перед выделенным блоком |
| Combine Selected IDAT | — | объединить выделенные IDAT |
| Combine All IDAT | — | объединить все IDAT |
| Split IDAT… | — | разделить IDAT |
| Import Chunk… | — | импортировать chunk из внешнего файла |
| Export Chunk… | — | экспортировать выделенный chunk |
| Import ICC Profile… | — | создать iCCP из ICC-профиля |
Команда Edit Chunk… работает не одинаково для всех типов. Для gAMA открывается окно File gamma с полем Gamma. Для pHYs — окно Physical pixel size с полями X, Y и выбором единиц unspecified units или meter. Для sRGB — окно с вариантами rendering intent: Perceptual, Relative Colorimetric, Saturation, Absolute Colorimetric. Для tEXt/zTXt/iTXt — окно Text, где есть Keyword, Compressed, International text, Language tag, Translated keyword и многострочное поле содержимого.
Команды Move Up и Move Down требуют аккуратности. PNG чувствителен к порядку chunks: IHDR должен быть первым, IEND последним, IDAT должны идти подряд. TweakPNG позволяет перемещать блоки, но пользователь должен понимать последствия. После перестановки нужно запускать Check Validity.
Cut, Copy и Paste полезны, если нужно перенести служебный chunk из одного PNG в другой. Например, можно скопировать текстовый блок tEXt или параметры pHYs. Вставка происходит перед выделенным chunk, а не поверх него, поэтому нужно заранее выбрать правильную позицию.
Меню Insert
Меню Insert добавляет новые chunks. Это одна из сильных сторон TweakPNG: программа не только показывает структуру PNG, но и умеет создавать многие стандартные и дополнительные блоки.
Доступные команды меню Insert:
| Команда | Назначение |
|---|---|
| acTL (APNG animation control) | блок управления APNG-анимацией |
| bKGD (Background color) | фоновый цвет |
| cHRM (Chromaticities) | координаты цветностей |
| fcTL (APNG frame control) | параметры кадра APNG |
| gAMA (Gamma) | гамма изображения |
| IEND (End of image) | конечный блок изображения |
| IHDR (Image header) | заголовок PNG |
| oFFs (Image offset) | смещение изображения |
| pHYs (Pixel size, aspect ratio) | физический размер пикселя и пропорции |
| PLTE (Palette) | палитра |
| sBIT (Significant bits per sample) | значимые биты компонента |
| sCAL (Physical scale) | физический масштаб |
| sRGB (sRGB color space indicator) | индикатор sRGB |
| sTER (Stereo image indicator) | стереоскопический индикатор |
| tEXt/zTXt/iTXt (Text) | текстовый chunk |
| tIME (Time of last modification) | время последнего изменения |
| tRNS (Transparency) | прозрачность |
| vpAg (Virtual page) | виртуальная страница |
После вставки нового chunk его часто нужно отредактировать и проверить расположение. TweakPNG создает блок с начальными значениями, но не всегда размещает его в позиции, которая идеально подходит для конкретного файла. Поэтому типичная последовательность такая: добавить chunk через Insert, отредактировать его через Edit Chunk…, при необходимости переместить через Move Up или Move Down, затем проверить через Check Validity.
Меню Insert особенно полезно при добавлении текстовых метаданных, pHYs, gAMA, sRGB, tRNS, bKGD. Например, если PNG-файл не содержит физического размера пикселя, можно добавить pHYs и задать плотность в pixels per meter. Если нужно добавить комментарий, используется tEXt/zTXt/iTXt (Text).
Меню Options
В меню Options находятся две команды:
-
Preferences…
-
Configure Tools…
Preferences… открывает небольшое окно настроек. В нем есть параметр Compression level for new zTXt chunks и флажок Add TweakPNG to Explorer context menu. Первый параметр задает уровень сжатия для новых zTXt chunks. Второй добавляет пункт TweakPNG в контекстное меню Windows Explorer для файлов с расширениями PNG, MNG и JNG.
Опция контекстного меню удобна, если TweakPNG используется постоянно. Вместо запуска программы и команды File → Open… можно щелкнуть по файлу правой кнопкой мыши и открыть его сразу в TweakPNG. При этом двойной щелчок по PNG продолжит открывать изображение в обычном просмотрщике, а TweakPNG будет доступен как отдельный пункт.
Configure Tools… открывает окно Configure tools. В нем можно задать до шести внешних инструментов. Для каждого инструмента предусмотрены поля Name, Program, Parameters и кнопка … для выбора исполняемого файла. Такой механизм делает TweakPNG небольшим рабочим центром: из него можно запускать внешний просмотрщик, браузер, консольный фильтр или утилиту обработки PNG.
Меню Tools и встроенный просмотрщик
Меню Tools используется для вызова встроенного просмотрщика и внешних инструментов. Встроенный viewer вызывается через Tools → Show Image Viewer или горячую клавишу F7. Он не превращает TweakPNG в графический редактор, но позволяет увидеть текущее состояние изображения после изменений.
Окно viewer имеет собственное меню:
| Раздел | Команды |
|---|---|
| File | Close Viewer |
| Edit | Copy Image |
| Options | Gamma Correction, Use Custom Background Color, Use Image Or Custom Background, Strip Alpha Channel, Set Custom Background Color…, Window Background Color, Correct for Nonsquare Pixels |
| Zoom | Fit, 12.5%, 25%, 50%, 100%, 200%, 400% |
Команда Copy Image копирует изображение в буфер обмена. Gamma Correction управляет коррекцией гаммы при отображении. Параметры фона полезны при проверке прозрачности: можно включить пользовательский фон, использовать фон из изображения или временно скрыть alpha channel через Strip Alpha Channel. Correct for Nonsquare Pixels нужен для случаев, когда pHYs описывает неквадратные пиксели.
Встроенный viewer пассивный: он не рисует, не ретуширует, не изменяет пиксели кистью. Его задача — показать, как текущий PNG выглядит после правок в таблице chunks.
Открытие PNG и чтение структуры файла
Работа с TweakPNG обычно начинается с открытия файла через File → Open… или перетаскивания PNG в окно. После загрузки программа сразу разбирает файл на chunks и заполняет таблицу. На этом этапе можно понять, насколько файл простой или насыщенный метаданными.
На скриншоте видно типичную структуру файла: IHDR, gAMA, cHRM, bKGD, несколько IDAT, текстовые chunks и IEND. В колонке Contents TweakPNG расшифровывает назначение строк. Например, для IHDR показываются размеры изображения, bit depth, color type и interlace mode; для gAMA — значение file gamma; для cHRM — координаты white point, red, green, blue; для bKGD — background color; для tEXt — ключ и значение текстового блока.
Быстрая проверка PNG в TweakPNG выглядит так:
-
Открыть файл через File → Open….
-
Найти первую строку
IHDR. -
Убедиться, что в конце есть
IEND. -
Посмотреть, сколько
IDATсодержит файл. -
Проверить, есть ли служебные chunks:
gAMA,cHRM,sRGB,pHYs,tEXt,zTXt,iTXt,iCCP,PLTE,tRNS. -
Выделить подозрительный chunk и посмотреть колонку Contents.
-
Запустить File → Check Validity.
Если файл содержит нестандартные или приватные chunks, TweakPNG показывает их код и основные атрибуты. Даже если программа не умеет интерпретировать содержимое такого блока, она все равно помогает увидеть его длину, CRC и позицию в файле.
Проверка файла через Check Validity
Команда Check Validity запускается из меню File или клавишей F5. Она проверяет общую структуру текущего файла: порядок chunks, наличие обязательных блоков, базовые условия валидности PNG. Это не глубокая экспертиза каждого байта и не полноценный декодер всех возможных сценариев, но для ручной работы в TweakPNG команда обязательна.
Проверку нужно выполнять:
-
сразу после открытия подозрительного файла;
-
после удаления chunk;
-
после добавления нового chunk;
-
после перемещения blocks;
-
после объединения или разделения
IDAT; -
перед сохранением результата;
-
после импорта внешнего chunk.
TweakPNG автоматически проверяет файл перед сохранением. Если обнаруживаются проблемы, программа просит подтвердить сохранение. Это важное поведение: пользователь может намеренно делать некорректный тестовый PNG, но при обычной работе предупреждение помогает не испортить файл случайно.
Типичные проблемы, которые хорошо выявляет Check Validity:
| Проблема | Что означает |
|---|---|
отсутствует IHDR |
нет обязательного заголовка PNG |
отсутствует IEND |
файл не имеет корректного завершающего блока |
IHDR стоит не первым |
нарушен порядок критических chunks |
IDAT идут не подряд |
поток image data поврежден структурно |
лишние chunks стоят после IEND |
данные находятся за пределами нормального PNG-потока |
| chunk расположен в неправильной зоне | блок вставлен до или после места, где он допустим |
Команда не делает файл правильным автоматически. Она только сообщает о структурной проблеме. Исправление выполняется вручную: удалить лишний chunk, переместить блок, вернуть IEND в конец, не трогать порядок IDAT.
Редактирование PNG Header через IHDR
IHDR — первый и самый важный chunk PNG-файла. В TweakPNG он отображается как PNG image header. Через Edit Chunk… открывается окно PNG Header, где есть поля:
-
Width;
-
Height;
-
Bit depth;
-
Color type;
-
Interlaced;
-
кнопки OK и Cancel.
В этом же окне выводится предупреждение: изменение полей может сделать изображение нечитаемым. Это не формальность. IHDR описывает то, как нужно декодировать последующие image data. Если просто изменить ширину или высоту, TweakPNG не пересоберет пиксельный поток. Файл начнет заявлять другие параметры, но реальные IDAT останутся прежними. Иногда это используют в CTF и forensic-задачах, когда нужно проверить неверно записанный размер, но для обычной обработки изображений такой способ рискован.
Практический сценарий редактирования IHDR:
-
Открыть PNG.
-
Выделить строку
IHDR. -
Нажать Enter или выбрать Edit → Edit Chunk….
-
Посмотреть Width, Height, Bit depth, Color type, Interlaced.
-
Изменять поля только при понимании структуры файла.
-
Нажать OK.
-
Запустить File → Check Validity.
-
Сохранить копию через File → Save As….
Для нормальных файлов IHDR чаще смотрят, чем редактируют. Он полезен как источник точных параметров: ширина, высота, bit depth, color type, interlace mode. Если цель — изменить размер изображения, лучше использовать ImageMagick, GIMP, Paint.NET или другой редактор, который пересчитывает пиксели. TweakPNG здесь нужен не для ресайза, а для просмотра и точечной правки заголовка.
Работа с текстовыми метаданными tEXt, zTXt и iTXt
Одна из самых практичных функций TweakPNG — добавление и изменение текстовых chunks. Через меню Insert → tEXt/zTXt/iTXt (Text) открывается окно Text. В нем есть:
-
Keyword;
-
флажок Compressed;
-
флажок International text;
-
Language tag;
-
Translated keyword;
-
большое многострочное поле для текста;
-
OK;
-
Cancel.
tEXt хранит простой текст без сжатия. zTXt хранит текст в сжатом виде. iTXt используется для международного текста и может включать language tag и translated keyword. TweakPNG объединяет работу с этими вариантами в одном окне, поэтому пользователь не обязан вручную создавать бинарный блок.
Добавление комментария в PNG:
-
Открыть файл.
-
Выбрать Insert → tEXt/zTXt/iTXt (Text) или нажать Ctrl+T.
-
В поле Keyword ввести, например,
Comment,Description,Authorили другой ключ. -
Оставить Compressed выключенным для обычного
tEXtили включить дляzTXt. -
Включить International text, если нужен
iTXt. -
При необходимости заполнить Language tag и Translated keyword.
-
Ввести текст в большое поле.
-
Нажать OK.
-
Проверить файл через Check Validity.
-
Сохранить копию.
Такой сценарий полезен, когда нужно добавить техническое описание к PNG, сохранить комментарий, зафиксировать параметры генерации или проверить, какие программы сохраняют и читают текстовые метаданные. TweakPNG также хорошо подходит для просмотра скрытых текстовых блоков. Если в колонке Contents появляется text, key=..., можно открыть chunk и посмотреть значение полностью.
Для удаления текстовых метаданных достаточно выделить строку tEXt, zTXt или iTXt и нажать Delete. После этого нужно сохранить копию. Такой способ помогает убрать ненужные комментарии, служебные строки генераторов изображений, приватные пометки и лишние текстовые chunks, которые увеличивают размер файла.
Редактирование gAMA
Chunk gAMA задает file gamma. В TweakPNG он редактируется через окно File gamma. В окне есть поле Gamma и кнопки OK и Cancel. В колонке Contents программа показывает значение вроде file gamma = 0.45455.
gAMA влияет на интерпретацию яркости при отображении. Встроенный viewer TweakPNG умеет учитывать gamma correction, поэтому после изменения gAMA можно открыть Tools → Show Image Viewer и проверить, как меняется вид изображения. Однако редактирование gAMA не заменяет полноценную цветокоррекцию. TweakPNG меняет служебный chunk, а не пересчитывает сами пиксели.
Типичный порядок:
-
Выделить
gAMA. -
Открыть Edit Chunk….
-
Изменить Gamma.
-
Нажать OK.
-
Проверить результат во viewer.
-
Запустить Check Validity.
-
Сохранить файл как копию.
Если gAMA отсутствует, его можно добавить через Insert → gAMA (Gamma). Такой сценарий полезен для тестирования приложений, которые по-разному реагируют на PNG gamma metadata.
Редактирование cHRM
Chunk cHRM хранит chromaticities: координаты white point и цветовых primaries. В TweakPNG для него открывается окно Chromaticities, где есть строки:
-
White point;
-
Red;
-
Green;
-
Blue.
Для каждой строки используются поля X и Y. В колонке Contents программа выводит значения вида chromaticities: WP(...) R(...) G(...) B(...).
cHRM нужен не всем PNG-файлам, но полезен при тестировании color management. TweakPNG позволяет быстро увидеть, есть ли этот блок, и изменить значения без ручного пересчета бинарной структуры. Важно понимать, что далеко не все просмотрщики одинаково учитывают cHRM, особенно если в файле также есть sRGB или iCCP.
Редактирование sRGB
Chunk sRGB указывает, что изображение использует sRGB color space, и содержит rendering intent. В TweakPNG окно редактирования sRGB предлагает варианты:
-
Perceptual;
-
Relative Colorimetric;
-
Saturation;
-
Absolute Colorimetric.
Для обычного пользователя это выглядит как узкая настройка, но для проверки работы приложений с PNG color management она полезна. Например, можно создать несколько вариантов одного файла с разными rendering intent и посмотреть, как их воспринимает сторонняя программа.
Если sRGB отсутствует, его можно добавить через Insert → sRGB (sRGB color space indicator). Если он мешает чистому тесту, его можно удалить. После изменения цветовых chunks обязательно стоит проверить файл и открыть viewer.
Редактирование pHYs: физический размер пикселя
Chunk pHYs описывает физический размер пикселя и aspect ratio. В TweakPNG он отображается как Physical pixel size. Окно редактирования содержит:
-
поле X;
-
поле Y;
-
подпись Pixels per;
-
переключатель unspecified units;
-
переключатель meter;
-
информационную строку с пересчетом;
-
OK;
-
Cancel.
pHYs часто используется для записи плотности в pixels per meter. Если значения X и Y равны 2835 pixels per meter, это соответствует примерно 72 dpi. Если X и Y отличаются, viewer может учитывать неквадратные пиксели. Для таких файлов во встроенном viewer есть настройка Correct for Nonsquare Pixels.
Практический порядок:
-
Найти строку
pHYs. -
Открыть Edit Chunk….
-
Ввести значения X и Y.
-
Выбрать meter, если значения заданы в пикселях на метр.
-
Нажать OK.
-
Проверить строку Contents.
-
При необходимости открыть viewer и включить Correct for Nonsquare Pixels.
Если pHYs отсутствует, его можно добавить через Insert → pHYs (Pixel size, aspect ratio). Это полезно, когда нужно явно задать плотность или проверить, как сторонние программы читают физические размеры PNG.
Редактирование tIME
Chunk tIME хранит время последнего изменения изображения. В TweakPNG для него открывается окно Last modification time. В нем есть поля:
-
Year;
-
Month;
-
Day;
-
Hour;
-
Minute;
-
Second;
-
кнопка Set to current time;
-
OK;
-
Cancel.
В окне указано, что время вводится в universal time. Это важно: tIME не хранит локальный часовой пояс так, как многие современные форматы метаданных. Если нужно просто обновить метку на текущую, удобнее нажать Set to current time. Если нужно воспроизвести конкретное время для теста, значения вводятся вручную.
tIME редко влияет на отображение картинки, но может быть важен при forensic-анализе, сравнении файлов, тестировании конвертеров и проверке того, какие программы сохраняют или удаляют временные chunks.
Палитра PLTE
PLTE содержит палитру PNG. В TweakPNG для него есть окно Palette. Оно особенно полезно для indexed-color изображений, где цвета задаются таблицей, а пиксели ссылаются на индексы палитры.
Окно Palette содержит:
-
поле количества цветов в палитре;
-
поле количества alpha values;
-
отображение элементов палитры;
-
подписи I, R, G, B, A;
-
кнопку-переключатель Set bkgd;
-
кнопку-переключатель Edit alpha;
-
маленькую кнопку
*; -
OK и Cancel.
Чтобы изменить цвет палитры, нужно выбрать элемент палитры, когда Set bkgd и Edit alpha не нажаты. После выбора открывается стандартный выбор цвета. Если уменьшить количество цветов, можно получить некорректный файл, если удаляемые цвета реально используются в изображении. Поэтому сокращение палитры нужно выполнять осторожно.
Для палитрового PNG TweakPNG позволяет управлять сразу несколькими связанными блоками: PLTE, tRNS, bKGD. Это удобно, потому что прозрачность и фоновый цвет в таких файлах привязаны к индексам палитры.
Прозрачность tRNS
Chunk tRNS отвечает за прозрачность. В палитровых PNG он хранит alpha values для элементов палитры. В TweakPNG прозрачность редактируется через palette editor.
Рабочая логика такая:
-
Убедиться, что в файле есть
PLTE. -
Если
tRNSотсутствует, добавить его через Insert → tRNS (Transparency). -
Открыть
tRNSилиPLTEчерез Edit Chunk…. -
Нажать Edit alpha.
-
Щелкнуть по нужному цвету палитры.
-
Ввести значение alpha.
-
Нажать OK.
-
Проверить изображение во viewer.
Alpha value 0 означает полную прозрачность, 255 — полную непрозрачность. Промежуточные значения дают частичную прозрачность. Если нужно полностью убрать прозрачность палитрового PNG, не обязательно ставить всем alpha 255: проще удалить chunk tRNS.
TweakPNG удобен тем, что позволяет увидеть, где именно хранится прозрачность. Во многих обычных редакторах пользователь видит только визуальный результат, а TweakPNG показывает служебный механизм: PLTE хранит цвета, tRNS задает прозрачность для части этих цветов.
Фоновый цвет bKGD
Chunk bKGD задает рекомендованный background color. В палитровом изображении он связан с элементом палитры, а в truecolor или grayscale сценариях хранит соответствующие значения цвета. В TweakPNG для палитровых файлов используется тот же palette editor.
Чтобы изменить фоновый цвет в палитровом PNG:
-
Убедиться, что есть
PLTE. -
Если
bKGDотсутствует, добавить Insert → bKGD (Background color). -
Открыть
bKGDчерез Edit Chunk…. -
Нажать Set bkgd.
-
Выбрать элемент палитры.
-
Нажать OK.
-
Проверить строку Contents.
Фоновый цвет не всегда визуально используется просмотрщиками. Это рекомендация для программ, которые учитывают bKGD. Поэтому TweakPNG хорошо подходит для проверки: можно создать файл с разными вариантами bKGD и посмотреть, как ведут себя браузеры, просмотрщики и графические библиотеки.
Работа с IDAT
IDAT — критический chunk, который содержит сжатые image data. В большинстве PNG именно IDAT занимает основную часть размера. Файл может содержать один IDAT или несколько. Важное правило: если IDAT несколько, они должны идти подряд.
TweakPNG не редактирует содержимое IDAT как пиксели. Программа не предназначена для ручного изменения сжатого потока. Но она умеет выполнять структурные операции:
-
Combine Selected IDAT;
-
Combine All IDAT;
-
Split IDAT….
Combine All IDAT объединяет все IDAT chunks. Такая операция может немного уменьшить размер файла, потому что каждый удаленный chunk убирает служебные 12 байт: length, type и CRC. Это не глубокая оптимизация изображения, но для структуры файла операция корректная, если IDAT идут правильно.
Split IDAT… делает обратное: разделяет один IDAT на несколько частей. В окне Split IDAT chunk есть поле Size in bytes of first chunk (0-12345) и флажок Repeat as many times as possible. Если флажок выключен, создается разделение на две части. Если включен, TweakPNG повторяет деление максимально возможное число раз.
Разделение IDAT полезно не для обычного пользователя, а для тестирования PNG-декодеров. Некоторые приложения могут некорректно обрабатывать множество маленьких IDAT, нулевой IDAT или необычное разбиение потока. TweakPNG позволяет подготовить такие тестовые файлы без написания собственного PNG-генератора.
Переставлять IDAT вручную нельзя. Если поменять порядок частей image data, файл станет нечитаемым или будет декодироваться неправильно. Перемещение chunks допустимо для многих ancillary blocks, но с IDAT нужно соблюдать порядок особенно строго.
Импорт и экспорт chunks
Команды Import Chunk… и Export Chunk… позволяют работать с отдельными blocks как с самостоятельными фрагментами. Это полезно, когда нужно перенести chunk из одного PNG в другой, сохранить его для анализа или вставить частный block, созданный отдельно.
Export Chunk… сохраняет выделенный chunk во внешний файл. Работает только с одним chunk за раз. Это удобно для изучения tEXt, PLTE, нестандартных private chunks и других блоков.
Import Chunk… вставляет chunk из внешнего файла. Внешний файл должен начинаться с четырех символов идентификатора chunk, например PLTE, а затем содержать данные блока. В нем не должно быть length и CRC: TweakPNG формирует эти части сам. Такая схема позволяет вставлять даже private unregistered chunks, если пользователь подготовил корректные данные.
Практический пример переноса текстового chunk:
-
Открыть PNG-источник.
-
Выделить
tEXt,zTXtилиiTXt. -
Выбрать Edit → Export Chunk….
-
Сохранить chunk во внешний файл.
-
Открыть целевой PNG.
-
Выбрать позицию вставки.
-
Выполнить Edit → Import Chunk….
-
Проверить файл через Check Validity.
-
Сохранить копию.
Такой способ точнее, чем копирование текстовых метаданных через обычные редакторы. TweakPNG переносит именно chunk-структуру, а не только видимый текст.
Import ICC Profile
Команда Import ICC Profile… создает iCCP chunk из стандартного ICC color profile. Это отдельная функция, потому что ICC-профиль нужно упаковать в PNG-совместимый iCCP, а не просто вставить как произвольные байты.
В колонке Contents для iCCP TweakPNG обычно показывает имя профиля. Полноценное редактирование содержимого профиля программа не выполняет: профиль импортируется как готовый объект. Это правильная логика, потому что ICC-профиль сам по себе является сложной структурой, которую редактируют специализированными средствами color management.
Сценарий использования:
-
Открыть PNG.
-
Выбрать Edit → Import ICC Profile….
-
Указать файл
.icc. -
Проверить появление
iCCP. -
Запустить Check Validity.
-
Сохранить PNG как копию.
Эта функция полезна при подготовке изображений для приложений, которые должны учитывать ICC-профили, или при проверке того, сохраняет ли сторонний софт iCCP после обработки PNG.
File Signature: PNG, MNG, JNG
Команда File → File Signature… открывает окно Set file type signature. В нем есть три варианта:
-
PNG;
-
MNG;
-
JNG.
Сигнатура — первые байты файла, по которым определяется семейство формата. В обычной работе менять ее почти никогда не нужно. Если PNG-файл является обычным статическим изображением, должен использоваться вариант PNG. Поддержка MNG и JNG в TweakPNG присутствует как дополнительная возможность, но программа не превращается в полноценный редактор MNG-анимаций или JNG-структур.
Для MNG/JNG TweakPNG может показывать, перемещать и удалять некоторые chunks, но не дает такого же полноценного смыслового редактирования всех MNG-specific блоков. Поэтому основная область применения программы остается PNG.
Configure Tools: подключение внешних программ
Окно Configure tools открывается через Options → Configure Tools…. В нем шесть строк для внешних инструментов. Каждая строка содержит:
-
Name — название, которое появится в меню Tools;
-
Program — путь к исполняемому файлу;
-
кнопку … — выбор программы;
-
Parameters — параметры командной строки.
Если указанный инструмент просто открывает файл, он работает как viewer. Если в Parameters используются %1 и %2, TweakPNG рассматривает инструмент как filter: %1 заменяется входным временным файлом, %2 — выходным временным файлом.
Пример viewer:
| Поле | Значение |
|---|---|
| Name | Firefox |
| Program | firefox.exe |
| Parameters | пусто |
После сохранения Firefox появится в меню Tools. При запуске TweakPNG запишет текущий документ во временный файл и откроет его во внешней программе.
Пример filter:
| Поле | Значение |
|---|---|
| Name | pngrewrite |
| Program | C:Program Filespngrewritepngrewrite.exe |
| Parameters | %1 %2 |
В этом режиме TweakPNG передает текущий PNG во внешний инструмент, ожидает выходной файл, затем считывает результат обратно. Это полезно для связки ручного chunk-level редактирования и автоматической обработки.
Практический сценарий: удалить лишние chunks
Один из самых частых сценариев — убрать ненужные служебные blocks. Например, PNG может содержать лишние текстовые комментарии, время изменения, физический размер пикселя, нестандартные chunks от генератора или редактора. Если они не нужны, их можно удалить.
Порядок действий:
-
Открыть PNG через File → Open….
-
Просмотреть список chunks.
-
Найти вспомогательные blocks:
tEXt,zTXt,iTXt,tIME, некоторые private chunks. -
Не трогать обязательные
IHDR,IDAT,IEND. -
Выделить ненужный chunk.
-
Нажать Delete.
-
Повторить для остальных лишних blocks.
-
Запустить Check Validity.
-
Сохранить файл через Save As….
Удаление chunks может уменьшить размер файла, но главная польза не всегда в экономии байтов. Иногда важнее убрать метаданные, которые не должны попадать в публикацию: авторские комментарии, внутренние пометки, параметры генерации или служебные строки.
TweakPNG хорош именно для ручного контроля. Автоматические оптимизаторы могут удалить blocks по своим правилам, а TweakPNG позволяет увидеть каждую строку и принять решение.
Практический сценарий: добавить комментарий в PNG
Для добавления комментария используется текстовый chunk. Самый простой вариант — tEXt.
Порядок действий:
-
Открыть файл.
-
Выбрать Insert → tEXt/zTXt/iTXt (Text).
-
В Keyword ввести
Comment. -
Оставить Compressed выключенным, если нужен простой
tEXt. -
Ввести комментарий в большое текстовое поле.
-
Нажать OK.
-
Проверить новую строку в таблице.
-
Выполнить Check Validity.
-
Сохранить копию.
Если текст длинный, можно включить Compressed, чтобы получить zTXt. Если нужен международный текст с языковой меткой, используется International text и поля Language tag, Translated keyword.
Такой способ удобен для тестов, документации и ручной маркировки PNG-файлов. Например, можно добавить информацию о версии проекта, условиях генерации или назначении тестового изображения.
Практический сценарий: проверить подозрительный PNG
TweakPNG хорошо подходит для первичного анализа подозрительного PNG-файла. Он показывает структуру, нестандартные chunks, текстовые метаданные и необычные размеры blocks.
Порядок проверки:
-
Открыть PNG.
-
Запустить Check Validity.
-
Посмотреть, начинается ли файл с
IHDR. -
Проверить, есть ли
IEND. -
Посмотреть количество
IDAT. -
Найти нестандартные chunks.
-
Проверить
tEXt,zTXt,iTXt. -
Обратить внимание на большие ancillary chunks.
-
При необходимости экспортировать подозрительный chunk через Export Chunk….
-
Сохранить исходный файл без изменений, а эксперименты выполнять на копии.
Для CTF и цифровой криминалистики это особенно полезно. В PNG могут находиться текстовые подсказки, скрытые служебные блоки, намеренно измененный IHDR, необычная gamma, нестандартный pHYs, несколько IDAT или private chunks. TweakPNG не заменяет binwalk, strings, ExifTool, pngcheck и hex-редактор, но дает быстрый визуальный обзор структуры PNG.
Практический сценарий: изменить прозрачность палитрового PNG
Если изображение палитровое, прозрачность часто задается через tRNS. TweakPNG позволяет редактировать alpha values в palette editor.
Порядок действий:
-
Открыть палитровый PNG.
-
Убедиться, что есть
PLTE. -
Если
tRNSотсутствует, добавить Insert → tRNS (Transparency). -
Открыть
tRNSилиPLTEчерез Edit Chunk…. -
Нажать Edit alpha.
-
Выбрать цвет палитры.
-
Ввести alpha value.
-
Нажать OK.
-
Открыть Tools → Show Image Viewer.
-
Проверить результат на пользовательском фоне.
-
Сохранить копию.
Для проверки прозрачности удобно использовать настройки viewer: Use Custom Background Color, Use Image Or Custom Background, Strip Alpha Channel. Они помогают увидеть, где прозрачность действительно работает, а где цвет просто похож на фон.
Практический сценарий: задать физический размер пикселя
Некоторым изображениям нужно явно задать плотность или aspect ratio. В PNG за это отвечает pHYs.
Порядок действий:
-
Открыть PNG.
-
Если
pHYsуже есть, выделить его и нажать Enter. -
Если
pHYsнет, выбрать Insert → pHYs (Pixel size, aspect ratio). -
В окне Physical pixel size заполнить X и Y.
-
Выбрать meter или unspecified units.
-
Нажать OK.
-
Проверить колонку Contents.
-
Запустить Check Validity.
Этот сценарий полезен при подготовке PNG для программ, которые читают физическую плотность изображения. При этом TweakPNG не меняет реальные пиксели. Он изменяет metadata, которые сообщают приложению, как интерпретировать физический размер.
Практический сценарий: подготовить тестовый PNG
TweakPNG особенно силен как инструмент подготовки тестовых файлов. С его помощью можно быстро создать PNG с необычной структурой и проверить, как его обрабатывает приложение, библиотека или веб-сервис.
Можно подготовить такие тесты:
-
PNG с несколькими
IDAT; -
PNG с разделенным
IDAT; -
PNG с нулевым или маленьким
IDAT; -
PNG с
gAMA, но безsRGB; -
PNG с
sRGBи разными rendering intent; -
PNG с
cHRM; -
PNG с
iCCP; -
PNG с несколькими текстовыми chunks;
-
PNG с private chunk;
-
PNG с нестандартным
pHYs; -
палитровый PNG с
PLTE,tRNS,bKGD; -
APNG-related chunks
acTLиfcTL.
Для разработчика это быстрее, чем писать собственный генератор PNG. Можно взять нормальный файл, добавить или изменить blocks, сохранить копию и прогнать ее через тестируемую программу.
Поддерживаемые chunks и ограничения редактирования
TweakPNG поддерживает просмотр, редактирование и создание многих chunks, но не всех. Это важно понимать: программа не является универсальным редактором любого возможного PNG-блока.
Хорошо поддерживаются:
| Chunk | Просмотр | Редактирование | Создание |
|---|---|---|---|
IHDR |
да | да | да |
PLTE |
да | да | да |
bKGD |
да | да | да |
gAMA |
да | да | да |
cHRM |
да | да | да |
tRNS |
да | да | да |
sBIT |
да | да | да |
sRGB |
да | да | да |
tEXt |
да | да | да |
zTXt |
да | да | да |
iTXt |
да | да | да |
pHYs |
да | да | да |
tIME |
да | да | да |
sTER |
да | да | да |
oFFs |
да | да | да |
sCAL |
да | да | да |
acTL |
да | да | да |
fcTL |
да | да | да |
vpAg |
да | да | да |
Ограниченно поддерживаются или не редактируются:
| Chunk | Особенность |
|---|---|
IDAT |
содержимое не редактируется как пиксели, доступны combine/split |
IEND |
создается как конечный блок, но обычного содержимого не имеет |
iCCP |
импортируется из ICC-профиля, имя отображается, полноценное редактирование профиля не выполняется |
sPLT |
отображается ограниченно |
hIST |
не является основной областью редактирования |
| MNG-specific chunks | могут перемещаться или удаляться, но не всегда интерпретируются |
Такой набор показывает, что TweakPNG ориентирован на реальные технические задачи, а не на декоративное редактирование. Программа закрывает именно chunk-level view и редактирование служебных полей.
Особенности работы с MNG и JNG
TweakPNG поддерживает не только PNG, но и частично MNG/JNG. Однако главная специализация программы — PNG. MNG — формат семейства PNG для multi-image и animation, JNG связан с JPEG Network Graphics. В TweakPNG можно выбрать сигнатуру MNG или JNG, открывать такие файлы и работать с частью blocks, но программа не интерпретирует MNG-specific структуру так же глубоко, как PNG.
Для MNG/JNG TweakPNG лучше рассматривать как вспомогательный инструмент. Он может показать chunks, дать возможность перемещать или удалять некоторые блоки, выполнить отдельные операции с JDAT/IDAT-подобными данными, но не заменяет специализированные средства для MNG-анимаций.
В статье о TweakPNG важно не переоценивать эту часть: поддержка MNG/JNG есть, но основное практическое применение программы — просмотр и редактирование PNG chunks.
Сильные стороны TweakPNG
Главное преимущество TweakPNG — прямой, но достаточно удобный доступ к структуре PNG. Программа занимает мало места, быстро запускается, не требует установки и показывает то, что обычные просмотрщики скрывают.
Сильные стороны:
-
компактность и портативный запуск;
-
отдельные x86 и x64 исполняемые файлы;
-
понятная таблица Chunk / Length / CRC / Attributes / Contents;
-
просмотр PNG-файла на уровне chunks;
-
редактирование многих стандартных служебных blocks;
-
добавление
tEXt,zTXt,iTXt; -
работа с
gAMA,cHRM,sRGB; -
редактирование
pHYs; -
работа с
PLTE,tRNS,bKGD; -
импорт ICC-профиля;
-
экспорт и импорт отдельных chunks;
-
объединение и разделение
IDAT; -
встроенный viewer;
-
настройка внешних tools;
-
интеграция в контекстное меню Explorer;
-
удобство для тестовых PNG и forensic-задач;
-
открытая лицензия GPL.
Особенно удачной выглядит колонка Contents. Она превращает TweakPNG из простого списка блоков в читабельный анализатор. Пользователь видит не только pHYs, но и расшифровку физического размера; не только tEXt, но и ключ текстового поля; не только IHDR, но и размеры, bit depth, color type, interlace status.
Ограничения и риски
TweakPNG не скрывает свою техническую природу. Пользователь должен понимать PNG-структуру хотя бы на базовом уровне. Программа позволяет сделать файл некорректным, потому что дает доступ к тем частям, которые обычные редакторы защищают от прямого изменения.
Ограничения:
-
нет обычного визуального редактирования изображения;
-
нет кистей, слоев, масок, фильтров и цветокоррекции;
-
нет пакетного режима;
-
нет автоматической оптимизации уровня Oxipng или OptiPNG;
-
нет полноценного hex-редактора внутри программы;
-
не все chunks можно редактировать;
-
IDATнельзя редактировать как пиксельные данные; -
неправильный порядок chunks ломает файл;
-
изменение
IHDRне пересчитывает image data; -
MNG/JNG поддерживаются ограниченно;
-
интерфейс выглядит старым;
-
программа рассчитана на пользователей, знакомых с PNG.
Отдельный риск — сохранение поверх оригинала. В TweakPNG лучше выработать привычку использовать Save As…. Если правка оказалась ошибочной, оригинальный файл останется нетронутым. Для экспериментов с IDAT, IHDR, PLTE и private chunks это обязательное правило.
Сравнение с аналогами
TweakPNG занимает узкую нишу: интерактивное редактирование PNG chunks в Windows-интерфейсе. Поэтому сравнивать его с обычными графическими редакторами бессмысленно. Реальные аналоги и соседние инструменты — это pngcheck, ExifTool, Nayuki PNG file chunk inspector, ImageMagick, OptiPNG, Oxipng, Pngcrush и hex-редакторы.
| Программа | Что лучше делает | Где уступает TweakPNG |
|---|---|---|
| TweakPNG | ручной просмотр и редактирование PNG chunks через GUI | нет пакетной обработки, нет обычного редактирования изображения |
| pngcheck | проверка PNG, CRC, вывод chunk-информации в командной строке | не дает интерактивно редактировать chunks через GUI |
| ExifTool | чтение и запись метаданных во множестве форматов | не ориентирован на визуальное перемещение и ручное редактирование PNG chunks |
| Nayuki PNG file chunk inspector | удобный web-просмотр структуры PNG | работает как inspector, а не как настольный редактор файла |
| ImageMagick | конвертация, ресайз, обработка изображений, автоматизация | не заменяет ручной chunk-level editor |
| OptiPNG | оптимизация PNG без потерь | не предназначен для ручного добавления tEXt, pHYs, tRNS |
| Oxipng | быстрая современная PNG-оптимизация | не дает таблицу chunks и ручное редактирование |
| Pngcrush | оптимизация и управление некоторыми PNG-параметрами | сложнее для ручного визуального анализа |
| HxD | полный доступ к байтам файла | не расшифровывает PNG chunks так удобно |
| 010 Editor | шаблоны бинарных форматов, глубокий анализ | сложнее и шире по назначению, чем TweakPNG |
pngcheck хорошо подходит, когда нужно быстро проверить PNG из командной строки. Он показывает ошибки, CRC, размеры, типы blocks, может выводить подробную информацию. Но если нужно удалить конкретный tEXt, добавить pHYs, импортировать ICC-профиль или переместить chunk вручную, TweakPNG удобнее.
ExifTool сильнее в мире метаданных. Он работает с огромным количеством форматов и отлично подходит для пакетного чтения, удаления и записи metadata. Но ExifTool не показывает PNG как интерактивную таблицу chunks и не ориентирован на ручное структурное редактирование каждого блока.
Nayuki PNG file chunk inspector удобен для просмотра PNG-структуры в браузере. Он хорошо объясняет поля chunk и помогает быстро разобрать файл. Но это именно inspector. TweakPNG — настольная программа, которая позволяет менять файл и сохранять результат.
ImageMagick нужен для другого класса задач: изменить размер, сконвертировать формат, пересобрать изображение, применить операцию к сотням файлов. Если нужно обработать пиксели, ImageMagick сильнее. Если нужно посмотреть CRC, удалить tEXt, создать tRNS или разделить IDAT, TweakPNG точнее попадает в задачу.
OptiPNG, Oxipng и Pngcrush — оптимизаторы. Они хороши, когда цель — уменьшить размер PNG без визуальных потерь. Но они не заменяют TweakPNG, потому что не дают такого ручного контроля над отдельными chunks. Их можно использовать вместе: сначала изучить и вручную поправить файл в TweakPNG, затем прогнать копию через оптимизатор.
HxD и другие hex-редакторы дают абсолютный контроль, но требуют больше ручной работы. В hex-редакторе нужно самому понимать offsets, длину, тип chunk, CRC и структуру данных. TweakPNG решает эту часть за пользователя и поэтому быстрее для большинства PNG-задач.
Когда TweakPNG лучше не использовать
TweakPNG не нужен, если задача простая и визуальная. Для обрезки картинки, уменьшения размера, конвертации JPG в PNG, удаления фона, сжатия для сайта или ретуши лица программа не подходит. В таких случаях лучше выбрать графический редактор или оптимизатор.
Не стоит использовать TweakPNG для:
-
обычного рисования;
-
фотомонтажа;
-
пакетного изменения размеров;
-
автоматической оптимизации папки с изображениями;
-
удаления фона;
-
повышения резкости;
-
цветокоррекции фотографии;
-
конвертации между множеством форматов;
-
редактирования EXIF у фотографий;
-
работы с JPEG как основным форматом.
TweakPNG стоит открывать тогда, когда вопрос звучит иначе: какие chunks есть в этом PNG, почему файл ведет себя необычно, что находится в tEXt, как добавить iTXt, как изменить pHYs, как проверить CRC, как импортировать ICC-профиль, как подготовить тестовый PNG.
Таблица характеристик
| Параметр | Значение |
|---|---|
| Название | TweakPNG |
| Расширенное название | TweakPNG — редактор PNG-чанков и метаданных для Windows |
| Разработчик | Jason Summers |
| Тип программы | низкоуровневый редактор структуры PNG |
| Основная задача | просмотр, проверка и изменение PNG chunks |
| Интерфейс | классическое Windows-окно с таблицей chunks |
| Главные колонки | Chunk, Length, CRC, Attributes, Contents |
| Основные меню | File, Edit, Insert, Options, Tools, Help |
| Поддерживаемые форматы | PNG, частично MNG/JNG |
| Версия | 1.4.6 / файл версии 1.4.6.2 |
| Лицензия | GPL-3.0 |
| Платформа | Windows |
| Установка | распаковка архива |
| Исполняемые файлы | x86tweakpng.exe, x64tweakpng.exe |
| Встроенный просмотрщик | есть |
| Пакетная обработка | нет |
| Обычное редактирование изображения | нет |
| Работа с IDAT | объединение и разделение |
| Работа с ICC | импорт ICC-профиля в iCCP |
| Интеграция с Explorer | через настройку Add TweakPNG to Explorer context menu |
Итоговая оценка
TweakPNG — точный и полезный инструмент для тех, кому нужно работать с PNG-файлом на уровне структуры. Его сильная сторона не в красивом интерфейсе и не в автоматической обработке, а в прямом доступе к chunks. Программа показывает IHDR, IDAT, IEND, PLTE, tRNS, pHYs, gAMA, cHRM, sRGB, tEXt, zTXt, iTXt и другие blocks так, чтобы пользователь мог понять, что именно находится внутри файла.
TweakPNG стоит держать под рукой разработчикам, специалистам по тестированию, людям, работающим с цифровой криминалистикой, CTF-задачами, метаданными PNG и нестандартными файлами. Он удобен для удаления лишних chunks, добавления текстовых метаданных, проверки структуры, настройки прозрачности палитры, импорта ICC-профиля и создания тестовых изображений.
Главное ограничение программы — требовательность к пониманию формата. TweakPNG не защищает от всех ошибок и не превращает низкоуровневое редактирование в бытовую операцию. Если пользователь меняет IHDR, переставляет chunks или экспериментирует с IDAT, он должен сохранять копии и проверять результат через Check Validity.
В своей нише TweakPNG остается удачной программой: маленькой, прямолинейной, технически полезной и до сих пор актуальной для задач, где обычный просмотрщик PNG показывает только картинку, а нужно увидеть саму внутреннюю структуру файла.