Oxipng — это консольная программа для оптимизации PNG и APNG без визуальной потери качества. Она работает не как графический редактор, а как утилита командной строки: пользователь передает ей один файл, несколько файлов или папку, задает параметры сжатия, а программа пересобирает PNG так, чтобы файл занимал меньше места. Основная задача Oxipng — уменьшение размера PNG-файлов без изменения изображения на экране.
Выбор редакции
Скачать Oxipng бесплатно
ФотоМАСТЕР
- Простой интерфейс
- Ретушь и замена фона
- Фильтры и автокоррекция
- Быстрая обработка фото
Oxipng
- Сложнее простых редакторов
- Может быть избыточна для быстрых правок
- Нужно время на освоение
- Не все функции нужны новичку
Oxipng особенно хорошо подходит для проектов, где PNG используется постоянно: иконки интерфейса, скриншоты, изображения в документации, графика для сайта, статические ассеты в frontend-проекте, изображения в репозитории, APNG-анимации и наборы PNG, которые нужно прогонять перед публикацией. Программа написана на Rust, использует многопоточность и рассчитана на автоматизацию: ее удобно запускать вручную в терминале, добавлять в скрипты, подключать к pre-commit, использовать в CI и запускать внутри Docker-контейнера.
Важная особенность Oxipng — это узкая специализация. Программа не пытается заменить Photoshop, GIMP, ImageMagick или универсальные конвертеры форматов. Она занимается конкретной задачей: берет PNG/APNG и подбирает более выгодное внутреннее представление файла. За счет этого Oxipng воспринимается не как еще одна программа для картинок, а как рабочий инструмент для сжатия PNG без потерь, оптимизации изображений для сайта и автоматической обработки графики в проектах.
Oxipng работает через команду oxipng. У нее нет окна с кнопками Открыть, Сохранить, Экспортировать и Качество. Ее интерфейс — это параметры вроде -o, --strip, --alpha, --interlace, --dry-run, --json, --threads, --dir и --out. Такой подход сначала кажется менее удобным, чем drag-and-drop, но именно он делает программу сильной: одну и ту же команду можно повторить на сотнях файлов, записать в документацию проекта, добавить в npm-скрипт, прогнать в GitHub Actions или применить перед каждым коммитом.
Oxipng относится к классу lossless PNG optimizer: она уменьшает файл не за счет грубого ухудшения картинки, а за счет более рационального кодирования PNG. В типовом сценарии исходное изображение остается визуально тем же самым: пиксели на экране выглядят одинаково, а файл становится меньше. При этом у программы есть отдельные параметры, которые уже не являются строго lossless в техническом смысле, например --alpha и --scale16; они полезны, но требуют понимания последствий.
Для каких задач подходит Oxipng
Oxipng лучше всего раскрывается там, где PNG-файлы нужно не редактировать, а именно оптимизировать. Это инструмент не для рисования, не для цветокоррекции и не для ручной ретуши, а для финальной подготовки файлов перед публикацией, сборкой проекта или загрузкой в репозиторий.
Типичные задачи Oxipng:
-
уменьшить размер PNG-иконок интерфейса;
-
сжать скриншоты без заметного изменения картинки;
-
подготовить PNG для сайта, чтобы страницы загружались быстрее;
-
оптимизировать изображения в папке
assets; -
обработать PNG перед коммитом в Git;
-
проверить возможный выигрыш без изменения файла;
-
вывести результат в JSON для скриптов и автоматизации;
-
ограничить число потоков при работе на слабой машине или в CI;
-
удалить лишние метаданные;
-
обработать APNG, не превращая задачу в ручную настройку каждого кадра.
Для владельца сайта Oxipng полезен как способ уменьшить вес PNG-графики без смены формата. Для frontend-разработчика — как команда, которую можно добавить в сборочный процесс. Для автора технической документации — как быстрый способ сжать скриншоты интерфейса. Для DevOps-инженера — как маленькая утилита, которую легко встроить в автоматическую проверку. Для Rust-разработчика — еще и как библиотека, которую можно использовать внутри собственного приложения.
В реальной работе Oxipng часто используют в связке с другими инструментами. Например, если нужен максимально маленький PNG и допустимо уменьшение цветовой точности, сначала применяют lossy-инструмент вроде pngquant, а затем прогоняют результат через Oxipng. Если потери недопустимы, используют только Oxipng или похожий lossless-оптимизатор.
Что Oxipng умеет и чего не умеет
Oxipng умеет:
-
оптимизировать PNG без визуальной потери качества;
-
работать с APNG в ограниченном, но полезном режиме;
-
подбирать уровень оптимизации через
-oили--opt; -
удалять безопасные или все некритические метаданные;
-
менять или сохранять interlacing;
-
оптимизировать прозрачные области через
--alpha; -
использовать Zopfli-компрессию через
--zopfli; -
запускаться рекурсивно по папкам через
--recursive; -
сохранять результат в отдельный файл через
--out; -
складывать оптимизированные файлы в отдельную папку через
--dir; -
проверять результат без записи через
--dry-run; -
выводить машинно-читаемый JSON через
--json; -
ограничивать число потоков через
--threads; -
сохранять права и временные метки через
--preserve; -
обрабатывать несколько файлов за один запуск;
-
работать как CLI-программа и как библиотека для Rust-проектов.
Oxipng не умеет:
-
открывать изображение в графическом окне;
-
показывать визуальное сравнение до и после;
-
редактировать изображение кистью, слоями или масками;
-
конвертировать любые форматы в любые;
-
заменять JPEG/WebP/AVIF-оптимизаторы;
-
радикально уменьшать каждый PNG в несколько раз;
-
гарантировать одинаковый процент сжатия на разных файлах;
-
делать lossy-компрессию PNG по умолчанию;
-
полноценно заменять специализированные APNG-оптимизаторы;
-
быть удобной программой для пользователя, который принципиально не работает с терминалом.
Главное ограничение Oxipng связано не с качеством программы, а с природой PNG. Если файл уже хорошо оптимизирован, повторный прогон может дать минимальный результат. Если PNG содержит фотографию, сам формат может быть не лучшим выбором: иногда правильнее использовать WebP, AVIF или JPEG. Но если задача именно в том, чтобы оставить PNG и выжать из него лишние килобайты, Oxipng подходит очень хорошо.
Интерфейс Oxipng: как выглядит работа с программой
У Oxipng нет классического графического интерфейса. Это важный момент, потому что попытка искать в программе кнопки приведет к неправильному ожиданию. Интерфейс Oxipng — это терминал, команда oxipng, список файлов и набор параметров. В роли элементов интерфейса выступают флаги командной строки.
Основная форма команды выглядит так:
oxipng [OPTIONS] <files>... Где <files> — один или несколько PNG/APNG-файлов, а [OPTIONS] — параметры обработки.
Например:
oxipng -o 4 --strip safe --alpha screenshot.png Эта команда берет файл screenshot.png, применяет уровень оптимизации 4, удаляет безопасно удаляемые метаданные и включает дополнительную оптимизацию прозрачных пикселей.
В терминальном интерфейсе Oxipng важны следующие элементы:
| Элемент | Что означает |
|---|---|
oxipng | имя исполняемой команды |
<files> | PNG/APNG-файлы, которые нужно обработать |
-o / --opt | уровень оптимизации |
--strip | удаление метаданных |
--alpha | оптимизация прозрачных пикселей |
--interlace | управление interlacing |
--dry-run | пробный запуск без записи результата |
--json | вывод результата в JSON |
--threads | ограничение числа потоков |
--recursive | обработка файлов внутри папок |
--out | запись результата в конкретный файл |
--dir | запись результатов в отдельную папку |
С точки зрения пользователя, работа с Oxipng обычно выглядит так:
-
Открывается терминал.
-
Пользователь переходит в папку с изображениями.
-
Выполняется команда оптимизации.
-
Oxipng анализирует файл, пробует варианты сжатия и записывает результат.
-
Пользователь видит, насколько уменьшился файл.
-
Команда повторяется для других файлов или добавляется в автоматический процесс.
Такой интерфейс не рассчитан на случайную ручную обработку одной картинки мышкой, зато он хорошо подходит для воспроизводимой обработки. Если в проекте есть правило все PNG в папке assets должны быть оптимизированы командой oxipng -o 4 --strip safe --alpha, каждый участник команды получает одинаковый результат.
Быстрый старт: первая оптимизация PNG
Для первого запуска достаточно одного PNG-файла и базовой команды. Допустим, в папке лежит файл image.png. Команда будет такой:
oxipng image.png Oxipng применит стандартные настройки оптимизации и перезапишет файл, если новый вариант окажется меньше. Это самый простой сценарий: пользователь не выбирает уровень, не настраивает метаданные и не управляет потоками.
Более практичный вариант для веб-графики:
oxipng -o 4 --strip safe --alpha image.png Здесь используются три ключевых параметра:
-
-o 4— уровень оптимизации выше стандартного, но еще пригодный для регулярного использования; -
--strip safe— удаление безопасно удаляемых метаданных; -
--alpha— оптимизация полностью прозрачных пикселей.
Для обработки нескольких файлов в текущей папке используется маска:
oxipng -o 4 --strip safe --alpha *.png Для рекурсивной обработки папки:
oxipng -r -o 4 --strip safe --alpha assets/ Для проверки без изменения файлов:
oxipng --dry-run -o 4 --strip safe --alpha image.png --dry-run полезен перед массовой обработкой. Он показывает потенциальный результат, но не записывает измененный файл. Это правильный режим для первого теста на новой папке, особенно если в ней лежат оригиналы, которые не были скопированы заранее.
Практический порядок первой работы с Oxipng:
-
Сделать копию папки с изображениями.
-
Открыть терминал в этой папке.
-
Проверить доступность команды:
oxipng --version -
Запустить пробный режим:
oxipng --dry-run -o 4 --strip safe --alpha *.png -
Если результат устраивает, выполнить реальную оптимизацию:
oxipng -o 4 --strip safe --alpha *.png -
Проверить итоговый размер файлов.
-
Зафиксировать команду в документации проекта или скрипте.
Основные параметры Oxipng
-o, --opt: уровень оптимизации
Параметр -o или --opt задает пресет оптимизации. Уровни идут от 0 до 6, также доступен max.
oxipng -o 4 image.png Чем ниже уровень, тем быстрее работа. Чем выше уровень, тем больше вариантов Oxipng пробует ради уменьшения файла. Это не означает, что уровень 6 всегда обязан дать заметно лучший результат, чем 4: у PNG-оптимизации есть убывающая отдача. На практике -o 2 подходит для быстрого прохода, -o 4 часто выбирают как рабочий компромисс, а -o 6 и -o max используют там, где время обработки менее важно, чем размер файла.
| Уровень | Характер |
-o 0 | самый быстрый базовый режим |
-o 1 | быстрый режим с чуть более сильной компрессией |
-o 2 | стандартный баланс скорости и результата |
-o 3 | усиленная оптимизация |
-o 4 | практичный режим для веб-ассетов |
-o 5 | более тяжелая оптимизация |
-o 6 | высокий уровень с большим числом проверок |
-o max | стабильное обозначение максимального уровня |
Для регулярной обработки ассетов не стоит автоматически ставить -o max. Это выглядит заманчиво, но в больших проектах может замедлить сборку без пропорционального выигрыша. Лучше проверить на реальной папке: иногда -o 4 дает почти тот же размер, но работает заметно быстрее.
--strip safe, --strip all, -s: удаление метаданных
PNG-файл содержит не только пиксели. В нем могут быть дополнительные chunks: цветовые профили, физический размер, текстовые комментарии, EXIF, служебные данные, сведения для отображения и анимационные чанки APNG. Oxipng умеет удалять метаданные через --strip.
Безопасный режим:
oxipng --strip safe image.png Короткая форма:
oxipng -s image.png Агрессивный режим:
oxipng --strip all image.png --strip safe удаляет только то, что не должно влиять на отображение изображения. Это основной режим для сайтов, документации и интерфейсных PNG. --strip all удаляет все некритические chunks и может быть нежелателен, если в файле важны цветовой профиль, физические размеры, EXIF или APNG-структура. Для анимированных PNG --strip all особенно рискован: он может превратить APNG в обычный PNG.
Тонкая настройка возможна через список chunks:
oxipng --strip bKGD,cHRM image.png Также есть обратная логика через --keep, когда пользователь удаляет лишнее, но сохраняет выбранные данные:
oxipng --keep eXIf,display image.png Для обычной веб-оптимизации наиболее разумный выбор:
oxipng -o 4 --strip safe image.png --alpha: оптимизация прозрачных пикселей
--alpha включает дополнительную оптимизацию для изображений с альфа-каналом:
oxipng --alpha icon.png Суть режима в том, что цветовые значения полностью прозрачных пикселей можно изменить так, чтобы файл лучше сжимался. На экране такие пиксели все равно невидимы, потому что их прозрачность равна нулю. Для иконок, UI-графики и скриншотов с прозрачными областями это часто дает дополнительное уменьшение размера.
Но --alpha важно понимать правильно. Визуально изображение остается тем же, но технически данные пикселей меняются. Если файл используется не только как картинка, а как источник данных, текстура для пайплайна, маска или промежуточный файл для дальнейших вычислений, --alpha может быть нежелателен. В обычной веб-графике этот режим обычно уместен.
Практичная команда:
oxipng -o 4 --strip safe --alpha icon.png --interlace off, --interlace on, --interlace keep
PNG поддерживает Adam7 interlacing. Это способ записать изображение так, чтобы при постепенной загрузке сначала появлялась грубая версия, а затем она уточнялась. Для современных сайтов эта особенность редко оправдывает увеличение размера файла.
Oxipng управляет interlacing через --interlace:
oxipng --interlace off image.png Доступные варианты:
| Режим | Действие |
off | убрать interlacing |
on | применить Adam7 interlacing |
keep | оставить как было в исходном файле |
Для большинства PNG, которые используются на сайте или в интерфейсе, рационален режим off. Если файл уже был interlaced, отключение interlacing может уменьшить размер. Если по какой-то причине важно сохранить поведение исходника, используется keep.
Команда для осторожного сохранения исходного режима:
oxipng --interlace keep image.png Команда для веб-ассетов:
oxipng -o 4 --interlace off --strip safe --alpha image.png --dry-run: проверка без записи файла
--dry-run запускает оптимизацию в пробном режиме:
oxipng --dry-run -o 4 image.png Этот параметр нужен, когда пользователь хочет увидеть потенциальный результат, но не хочет менять исходник. Он особенно полезен в трех случаях:
-
перед первой массовой обработкой папки;
-
при подборе уровня
-o; -
при проверке опасных параметров вроде
--strip all.
Хороший рабочий сценарий:
oxipng --dry-run -o 2 *.png
oxipng --dry-run -o 4 *.png
oxipng --dry-run -o 6 *.png После этого можно выбрать режим, который дает приемлемый баланс скорости и размера.
--json: вывод для автоматизации
--json переводит вывод результата в JSON:
oxipng --json -o 4 image.png Этот режим нужен не человеку, а скрипту. Его удобно использовать, когда нужно собрать статистику, проверить выигрыш, сохранить результат оптимизации в отчет или встроить Oxipng в автоматическую систему. JSON-вывод делает программу пригодной для пайплайнов, где результат не читается глазами, а парсится кодом.
Пример сценария:
oxipng --json --dry-run -o 4 assets/*.png Такая команда не меняет файлы, но дает машинно-читаемые данные о потенциальной оптимизации.
--threads: управление многопоточностью
Oxipng использует многопоточность для проверки разных вариантов оптимизации и обработки нескольких файлов. По умолчанию программа ориентируется на доступные логические CPU, но число потоков можно ограничить:
oxipng --threads 4 -o 4 assets/*.png Это полезно, если:
-
оптимизация идет на рабочем компьютере, где нельзя занимать весь процессор;
-
команда запускается в CI с ограниченными ресурсами;
-
обрабатываются большие PNG;
-
нужно уменьшить пиковое потребление памяти;
-
параллельно работает сборка проекта.
Для однопоточного режима:
oxipng --threads 1 -o 4 image.png Отдельно существует --sequential, который заставляет Oxipng обрабатывать несколько файлов последовательно. Это нужно не столько для экономии ресурсов, сколько для предсказуемого порядка обработки.
oxipng --sequential -o 4 assets/*.png --recursive: обработка папок
--recursive или -r включает обход вложенных папок:
oxipng -r -o 4 assets/ Oxipng будет искать PNG/APNG внутри дерева каталогов и оптимизировать найденные файлы. Это один из самых полезных режимов для проектов, где изображения разбросаны по папкам:
assets/icons/
assets/screenshots/
assets/ui/
docs/images/ Команда для всего проекта:
oxipng -r -o 4 --strip safe --alpha assets/ docs/images/ Перед реальным запуском лучше выполнить:
oxipng -r --dry-run -o 4 --strip safe --alpha assets/ docs/images/ --dir и --out: сохранение результата отдельно
По умолчанию Oxipng оптимизирует файл на месте. Если нужно сохранить исходник и записать результат отдельно, используются --out и --dir.
--out задает конкретное имя выходного файла:
oxipng --out optimized.png -o 4 image.png Это удобно для одного файла.
--dir складывает результаты в отдельную папку:
oxipng --dir optimized -o 4 image.png Для нескольких файлов:
oxipng --dir optimized -o 4 --strip safe --alpha *.png Нужно учитывать, что при рекурсивной обработке --dir не сохраняет исходную структуру папок. Если в разных вложенных каталогах есть файлы с одинаковыми именами, такой режим требует аккуратности.
--zopfli, --zi, --ziwi: максимальное сжатие ценой времени
--zopfli включает более медленную, но сильную компрессию:
oxipng --zopfli -o max image.png На практике этот режим используют не для каждого запуска, а для финальной подготовки файлов, где важен минимальный размер. Zopfli-компрессия может занимать заметно больше времени, особенно на больших изображениях или при массовой обработке.
Связанные параметры:
oxipng --zopfli --zi 30 image.png --zi задает число итераций Zopfli.
oxipng --zopfli --zi 100 --ziwi 20 image.png --ziwi останавливает Zopfli после заданного числа итераций без улучшения. Это помогает не тратить время бесконечно, если дальнейший выигрыш уже не появляется.
Практичная команда для сильного сжатия:
oxipng -o max --zopfli --fast --strip safe --alpha image.png --fast в такой связке помогает не делать чрезмерно много тяжелых основных попыток.
--timeout и --max-raw-size: ограничение тяжелых задач
Для больших изображений и автоматических пайплайнов важны ограничения. Oxipng позволяет задать максимальное время оптимизации:
oxipng --timeout 30 -o 6 image.png Также можно ограничить обработку по размеру распакованных данных:
oxipng --max-raw-size 50MB -r -o 4 uploads/ Это полезно, когда программа работает с большим количеством файлов или с непредсказуемыми пользовательскими загрузками. PNG может выглядеть как небольшой файл на диске, но после распаковки занимать много памяти. Ограничение помогает не превращать оптимизацию в источник проблем.
--fix и --force: специальные режимы
--fix позволяет обработать некоторые файлы с ошибками в chunks, отключая проверку checksum входных PNG-чанков. Выходной файл при этом записывается с корректными checksum.
oxipng --fix image.png --force заставляет записать результат даже тогда, когда он оказался больше исходника:
oxipng --force -o 4 image.png Обычному пользователю --force нужен редко. Oxipng ценен именно тем, что не должен ухудшать размер файла при стандартной логике. Принудительная запись полезна в специальных пайплайнах, где важна нормализация структуры PNG или применение конкретных преобразований.
Практические сценарии использования
Оптимизация одного файла
Самый простой сценарий:
oxipng image.png Более осмысленный вариант:
oxipng -o 4 --strip safe --alpha image.png Такую команду удобно использовать для скриншота, иконки, изображения в README или PNG, который нужно отправить на сайт. Она достаточно сильная, но не превращает обычную оптимизацию в долгую процедуру.
Оптимизация всех PNG в папке
Для текущей папки:
oxipng -o 4 --strip safe --alpha *.png Команда берет все файлы с расширением .png в текущем каталоге. Это хороший вариант для папки со скриншотами или иконками.
Если в папке есть файлы, которые трогать нельзя, лучше сначала сделать копию или использовать отдельную папку вывода:
oxipng --dir optimized -o 4 --strip safe --alpha *.png Рекурсивная обработка проекта
Для проекта с вложенными папками:
oxipng -r -o 4 --strip safe --alpha assets/ Если нужно обработать несколько директорий:
oxipng -r -o 4 --strip safe --alpha assets/ public/ docs/images/ Перед реальным запуском:
oxipng -r --dry-run -o 4 --strip safe --alpha assets/ public/ docs/images/ Рекурсивный режим особенно полезен для frontend-проектов, документации и статических сайтов. Он избавляет от ручного поиска PNG в разных папках.
Сохранение результата в отдельную папку
Если исходники нужно оставить нетронутыми:
oxipng --dir optimized -o 4 --strip safe --alpha image.png Для всех PNG в папке:
oxipng --dir optimized -o 4 --strip safe --alpha *.png Такой подход удобен при сравнении: в одной папке лежат исходники, в другой — оптимизированные файлы. После проверки можно заменить оригиналы вручную.
Проверка без изменения файлов
oxipng --dry-run -o 4 --strip safe --alpha *.png --dry-run — один из самых полезных параметров Oxipng. Он позволяет понять, есть ли вообще смысл в оптимизации. Если вывод показывает минимальный выигрыш, можно не тратить время на тяжелые уровни. Если выигрыш заметный, можно запускать реальную обработку.
JSON-вывод для автоматизации
oxipng --json --dry-run -o 4 assets/*.png JSON нужен для скриптов. Например, можно написать проверку, которая не дает принять pull request, если PNG-файлы можно существенно уменьшить. Можно сохранить статистику оптимизации в артефакт CI. Можно построить отчет по размеру картинок до и после обработки.
Оптимизация скриншотов для документации
Скриншоты интерфейсов часто хорошо сжимаются lossless-методами, потому что в них много повторяющихся областей, ровных цветов, текста и UI-элементов. Для папки docs/screenshots подойдет команда:
oxipng -r -o 4 --strip safe --alpha docs/screenshots/ Если скриншоты используются как доказательные материалы и важно сохранить метаданные, можно убрать --strip safe:
oxipng -r -o 4 --alpha docs/screenshots/ Оптимизация иконок и UI-графики
Для иконок с прозрачностью:
oxipng -o 4 --strip safe --alpha icons/*.png Иконки часто содержат альфа-канал, поэтому --alpha здесь особенно уместен. Но если иконки используются как исходники для дальнейшей обработки в графическом пайплайне, лучше сначала проверить результат на копии.
Проверка нескольких уровней оптимизации
Чтобы выбрать уровень не на глаз, а по реальному результату:
oxipng --dry-run -o 2 image.png
oxipng --dry-run -o 4 image.png
oxipng --dry-run -o 6 image.png Если разница между -o 4 и -o 6 минимальна, для регулярной работы стоит оставить -o 4. Если файл финальный и больше не будет часто пересобираться, можно применить -o 6 или -o max.
Режимы сжатия и качество результата
Oxipng не работает как магический уменьшатель картинок. Она не обязана превращать каждый PNG в файл в десять раз меньше. Результат зависит от исходника:
-
чем хуже был сжат исходный PNG, тем больше выигрыш;
-
чем лучше файл уже оптимизирован, тем меньше дополнительный результат;
-
скриншоты и UI-графика часто уменьшаются лучше фотографий;
-
PNG с большим количеством шумных деталей может почти не измениться;
-
файлы после других оптимизаторов могут дать минимальный выигрыш;
-
--strip safeпомогает, если в файле есть лишние метаданные; -
--alphaпомогает, если есть полностью прозрачные пиксели; -
interlacing может увеличивать размер, поэтому его отключение часто полезно.
Lossless-сжатие PNG строится на подборе более эффективного кодирования. Oxipng пробует разные фильтры, стратегии и параметры deflate-сжатия, а затем выбирает лучший результат. Внутренне PNG остается PNG: браузеры, просмотрщики и редакторы продолжают открывать файл обычным образом.
Нужно различать три ситуации:
| Ситуация | Что ожидать |
| Неоптимизированный PNG | заметное уменьшение размера |
| PNG после обычного редактора | часто хороший результат |
| PNG после сильного оптимизатора | небольшой или нулевой выигрыш |
| Фотографический PNG | выигрыш возможен, но формат может быть не лучшим |
| PNG с прозрачностью | --alpha может дать дополнительный эффект |
| APNG | результат есть, но поддержка ограничена |
Oxipng не портит визуальное качество в стандартном lossless-сценарии. Но некоторые параметры требуют осторожности. --alpha визуально безопасен для обычной картинки, но меняет цветовые значения полностью прозрачных пикселей. --scale16 уменьшает 16-битные каналы до 8-битных и уже является lossy-операцией. --strip all может удалить данные, которые нужны для корректного контекста использования.
Работа с прозрачностью
Прозрачность — одна из областей, где Oxipng может дать хороший результат. PNG с альфа-каналом часто хранит цветовые значения даже для тех пикселей, которые полностью прозрачны. На экране эти значения не видны, но в файле они занимают место и влияют на сжатие.
Команда:
oxipng --alpha image.png Оптимизирует полностью прозрачные пиксели так, чтобы файл лучше сжимался. Для иконок, UI-графики, кнопок, декоративных элементов и скриншотов с прозрачным фоном это обычно разумный выбор.
Пример для папки иконок:
oxipng -o 4 --strip safe --alpha icons/*.png Когда --alpha подходит:
-
PNG используется только для отображения;
-
прозрачные пиксели не анализируются другими программами;
-
файл публикуется на сайте;
-
изображение является финальным ассетом;
-
нужно уменьшить размер без видимого изменения.
Когда --alpha лучше не использовать:
-
PNG является исходником для дальнейшей обработки;
-
прозрачные пиксели содержат скрытую техническую информацию;
-
файл применяется как текстура в нестандартном пайплайне;
-
пиксельные значения сравниваются побайтно;
-
нужен строгий технический lossless без изменения невидимых пикселей.
На практике для веба и приложений --alpha часто включают по умолчанию. Для архивных оригиналов и технических данных его лучше применять после проверки.
Удаление метаданных
PNG может содержать метаданные, которые не нужны для отображения на сайте: комментарии, служебные chunks, EXIF, некоторые сведения редактора. Oxipng удаляет такие данные через --strip.
Наиболее безопасный вариант:
oxipng --strip safe image.png Короткая форма:
oxipng -s image.png Этот режим хорошо подходит для большинства оптимизируемых PNG. Он сохраняет данные, которые могут влиять на отображение, и убирает то, что не должно менять картинку.
Агрессивный вариант:
oxipng --strip all image.png Этот режим подходит не всегда. Он может удалить цветовые профили, физические размеры, EXIF и другие некритические chunks. В некоторых случаях изображение будет выглядеть так же, но контекст будет потерян. Для APNG этот режим особенно опасен, потому что может убрать анимационные chunks.
Практическое правило:
| Задача | Режим |
| Сайт, UI, документация | --strip safe |
| Максимальное удаление служебных данных | --strip all после проверки |
| Сохранение EXIF | --keep eXIf,display |
| APNG | избегать --strip all |
| Архивные исходники | не удалять метаданные без причины |
Пример сохранения EXIF и важных display-данных:
oxipng --keep eXIf,display image.png Для типового сайта:
oxipng -o 4 --strip safe --alpha *.png Работа с APNG
Oxipng поддерживает APNG, но это не делает ее полноценным специализированным APNG-редактором. APNG — это анимированный PNG, где важны не только обычные данные изображения, но и структура кадров. Oxipng может выполнять полезную оптимизацию APNG: работать с альфа-оптимизацией, refiltering и recompression кадров. Но для сложной анимации нужно осторожно относиться к параметрам, которые удаляют chunks или меняют структуру.
Безопасная базовая команда:
oxipng -o 4 --strip safe animation.apng С --alpha:
oxipng -o 4 --strip safe --alpha animation.apng Чего нельзя делать без проверки:
oxipng --strip all animation.apng Для APNG особенно важно проверять результат в просмотрщике или браузере. Если файл используется в интерфейсе, на сайте или в документации, нужно убедиться, что анимация осталась анимацией, кадры воспроизводятся корректно, прозрачность работает правильно, а цветовое отображение не изменилось.
Oxipng полезен для APNG как часть оптимизации, но не как инструмент для редактирования таймингов, кадров, зацикливания или визуальной структуры анимации. Если нужно менять саму анимацию, потребуется другой инструмент. Если нужно уменьшить файл без ручного редактирования, Oxipng подходит.
Производительность и многопоточность
Oxipng проектировался как быстрый многопоточный PNG optimizer. Многопоточность используется в двух направлениях: программа может параллельно оценивать варианты оптимизации одного файла и параллельно обрабатывать несколько файлов. Это особенно заметно при работе с папками, где лежат десятки или сотни PNG.
Базовая команда для папки:
oxipng -r -o 4 assets/ Ограничение потоков:
oxipng -r -o 4 --threads 4 assets/ Последовательная обработка:
oxipng -r -o 4 --sequential assets/ --threads нужен для контроля нагрузки. Если запустить Oxipng на большом наборе PNG с высоким уровнем оптимизации, программа может активно использовать процессор. На рабочей машине это может мешать другим задачам, а в CI — упереться в лимиты окружения.
--sequential нужен для предсказуемого порядка обработки. Он не заменяет полностью --threads 1, но решает задачу последовательного прохождения по нескольким файлам.
На производительность влияют:
-
размер изображений;
-
число файлов;
-
уровень
-o; -
включение
--zopfli; -
список фильтров
-f; -
наличие прозрачности;
-
interlacing;
-
скорость диска;
-
число потоков;
-
ограничения CI-контейнера.
Для регулярной работы хорошая команда:
oxipng -r -o 4 --strip safe --alpha --threads 4 assets/ Для финального тяжелого прохода:
oxipng -r -o max --zopfli --fast --strip safe --alpha assets/ Вторую команду не стоит запускать при каждом сохранении файла. Она больше подходит для редких финальных оптимизаций.
История версий программы
История Oxipng хорошо показывает, как программа развивалась от консольного PNG-оптимизатора к более зрелому инструменту для автоматизации. В раннем виде главной задачей была lossless-оптимизация PNG через командную строку. Затем в программе усиливались многопоточность, настройки фильтров, работа с метаданными, библиотечный API, поддержка APNG, Docker-сценарии, pre-commit-интеграция и управляемый вывод для автоматических систем.
В развитии Oxipng можно выделить несколько направлений.
Первое направление — усиление качества оптимизации. Программа постепенно расширяла набор преобразований, улучшала работу с palette/indexed PNG, grayscale, bit depth, color type и фильтрами строк. Это важно для PNG, потому что выигрыш часто возникает не из одного сильного алгоритма, а из комбинации маленьких улучшений: удачный фильтр, более подходящий тип цвета, корректная работа с палитрой, recompression IDAT и удаление лишних chunks.
Второе направление — повышение скорости и управляемости. Oxipng использует многопоточность, но для реальных рабочих процессов важно не только быстро, а еще и предсказуемо. Поэтому в программе появились параметры для ограничения потоков, последовательной обработки, ограничения времени и ограничения по raw-size. Это делает ее пригодной не только для личного терминала, но и для CI, серверных задач и обработки больших наборов изображений.
Третье направление — улучшение CLI-интерфейса. Oxipng развивался как инструмент, который должен быть понятен в командной строке. Появились более ясные названия параметров, удобный --dry-run, JSON-вывод, настройки --strip и --keep, режимы interlacing off/on/keep, управление Zopfli-итерациями и расширенная справка. Для CLI-программы это принципиально: качество интерфейса определяется не кнопками, а предсказуемостью команд.
Четвертое направление — интеграция. Oxipng получил сценарии для pre-commit, Docker и библиотечного использования в Rust. Это переводит программу из категории утилита, которую запускают вручную в категорию часть пайплайна. В современных проектах такая роль часто важнее графического интерфейса: если оптимизация происходит автоматически, пользователь вообще не должен каждый раз открывать отдельное приложение.
Пятое направление — осторожная работа с нестандартными случаями. В PNG есть много нюансов: ICC-профили, C2PA-метаданные, APNG-chunks, interlacing, 16-битные изображения, некорректные chunks, grayscale-преобразования. Развитие Oxipng шло не только через добавление сильнее сжать, но и через исправление таких крайних случаев.
История версий Oxipng показывает общий характер программы: она развивается как инженерный инструмент. В ней ценятся не декоративные функции, а точность, предсказуемость, скорость, управляемость и возможность встроить оптимизацию PNG в реальный рабочий процесс.
Интеграция в рабочий процесс
Oxipng в npm-скриптах
В frontend-проекте Oxipng удобно запускать через scripts. Например:
{
"scripts": {
"optimize:png": "oxipng -r -o 4 --strip safe --alpha public assets"
}
} После этого команда запускается так:
npm run optimize:png Или через pnpm:
pnpm optimize:png Такой подход удобен для команды: не нужно каждый раз вспоминать параметры, достаточно запустить один известный script.
Oxipng в pre-commit
Pre-commit нужен для автоматической проверки файлов перед коммитом. Для PNG это особенно полезно: разработчик добавил скриншот или иконку, а hook автоматически прогнал Oxipng.
Пример конфигурации:
repos:
- repo:
rev: v10.0.0
hooks:
- id: oxipng
args: ["-o", "4", "--strip", "safe", "--alpha"] После такой настройки PNG-файлы оптимизируются до попадания в историю Git. Это уменьшает раздувание репозитория и снимает ручную дисциплину с участников проекта.
Oxipng в Docker
Docker-сценарий полезен, когда не хочется устанавливать программу в систему или нужно одинаковое окружение для всех участников команды.
Пример запуска:
docker run --rm -v $(pwd):/work ghcr.io/oxipng/oxipng -o 4 /work/file.png Для папки:
docker run --rm -v $(pwd):/work ghcr.io/oxipng/oxipng -r -o 4 --strip safe --alpha /work/assets Docker особенно удобен в CI, где окружение должно быть воспроизводимым.
Oxipng в GitHub Actions
В GitHub Actions Oxipng можно использовать для оптимизации PNG после генерации скриншотов или перед публикацией статического сайта. Типовой шаг:
- name: Optimize PNGs
run: |
oxipng -o 4 --strip safe --alpha *.png Для вложенных папок:
- name: Optimize PNG assets
run: |
oxipng -r -o 4 --strip safe --alpha public assets docs/images Если workflow сам коммитит измененные файлы обратно в репозиторий, нужно отдельно продумать условия запуска, чтобы не получить лишние циклы коммитов. Если задача только проверочная, можно использовать --dry-run и JSON-вывод.
Oxipng в технической документации
Документационные проекты часто содержат много PNG-скриншотов. Удобная команда:
oxipng -r -o 4 --strip safe --alpha docs/ Если скриншоты генерируются автоматически, Oxipng запускается после генератора. Например:
npm run screenshots
oxipng -r -o 4 --strip safe --alpha docs/images/ Такой сценарий особенно полезен для документации интерфейсов, где скриншоты регулярно обновляются.
Сравнение с аналогами
Oxipng стоит сравнивать не с графическими редакторами, а с инструментами оптимизации изображений. У разных программ разные цели: одни строго lossless, другие lossy, третьи дают GUI, четвертые работают как веб-интерфейс.
| Программа | Тип | Интерфейс | Сильная сторона | Когда выбрать |
| OptiPNG | lossless PNG | CLI | проверенная классическая оптимизация PNG | когда нужен простой lossless-инструмент |
| pngquant | lossy PNG | CLI/library | сильное уменьшение за счет палитры | когда допустима потеря цветовой точности |
| zopflipng | lossless PNG | CLI | сильное сжатие через Zopfli | когда размер важнее скорости |
| ImageOptim | GUI-оболочка | macOS GUI | drag-and-drop и несколько движков | когда нужна ручная оптимизация без терминала |
| Squoosh | веб-интерфейс | браузер | визуальное сравнение и ручной контроль | когда нужно разово подобрать настройки |
| FileOptimizer | универсальный оптимизатор | Windows GUI | обработка разных типов файлов | когда нужна программа для всего |
| Curtail | GUI для Linux | Linux GUI | простая оптимизация изображений | когда нужен графический интерфейс на Linux |

OptiPNG ближе всего по идеологии: это CLI-инструмент для lossless-оптимизации PNG. Он хорошо подходит для базовой обработки и давно используется в разных пайплайнах. Oxipng отличается более современным подходом к многопоточности и удобством автоматизации.
pngquant решает другую задачу. Он уменьшает PNG через lossy-преобразование, часто переводя изображение в более компактный 8-битный PNG с альфа-каналом. Результат может быть намного меньше, но это уже не тот же класс компрессии. Для иконок, скриншотов и иллюстраций pngquant бывает очень эффективен, но его нужно оценивать визуально. После pngquant можно дополнительно запустить Oxipng для lossless-дожатия.
zopflipng ориентирован на сильную lossless-компрессию, но обычно требует больше времени. Его выбирают там, где важен минимальный размер и обработка не должна быть быстрой. Oxipng тоже умеет использовать Zopfli через --zopfli, но в повседневной работе чаще применяют обычные уровни -o.
ImageOptim удобен пользователям macOS, которым нужен drag-and-drop. Он скрывает командную строку и объединяет несколько движков оптимизации. Для ручной работы это удобно. Для CI, pre-commit и повторяемых скриптов CLI-инструмент обычно практичнее.
Squoosh хорош для визуального эксперимента: можно открыть изображение в браузере, подобрать формат, качество и сравнить результат глазами. Но для массовой обработки папки, строгих команд и репозиториев Oxipng удобнее.
FileOptimizer полезен на Windows как универсальная программа для разных типов файлов. Но универсальность означает другую философию: пользователь работает через оболочку, а не через точную CLI-команду под конкретную задачу.
Curtail ориентирован на простую графическую оптимизацию в Linux. Это вариант для пользователя, которому важно окно приложения. Oxipng лучше подходит тому, кому важны скрипты, терминал и автоматическое повторение результата.
Преимущества Oxipng
Главное преимущество Oxipng — точное соответствие задаче. Это не перегруженный редактор, а инструмент для оптимизации PNG/APNG. Он делает одну работу и делает ее в формате, удобном для автоматизации.
Сильные стороны:
-
lossless-оптимизация PNG по основной логике работы;
-
поддержка APNG;
-
многопоточность;
-
удобные уровни
-o 0–-o 6и-o max; -
практичный режим
-o 4для веб-ассетов; -
безопасное удаление метаданных через
--strip safe; -
дополнительная оптимизация прозрачности через
--alpha; -
пробный запуск через
--dry-run; -
JSON-вывод для скриптов;
-
рекурсивная обработка папок;
-
сохранение результата через
--outи--dir; -
ограничение потоков через
--threads; -
ограничение тяжелых задач через
--timeoutи--max-raw-size; -
поддержка Zopfli;
-
интеграция с pre-commit;
-
запуск через Docker;
-
использование как Rust-библиотеки;
-
понятная командная модель.

Практически важное преимущество — воспроизводимость. Если команда проекта договорилась использовать:
oxipng -r -o 4 --strip safe --alpha assets/ то результат не зависит от того, кто сидит за компьютером и какие кнопки он нажал в GUI. Команда одна, параметры одни, эффект проверяемый.
Второе сильное преимущество — пригодность для больших наборов файлов. Drag-and-drop хорош для трех изображений, но при регулярной работе с десятками PNG удобнее одна команда. Особенно если она запускается автоматически.
Третье преимущество — прозрачность настроек. Пользователь видит, что именно происходит: уровень оптимизации, удаление метаданных, работа с прозрачностью, управление interlacing. В GUI-оболочках часть этих решений часто спрятана.
Недостатки и ограничения
Oxipng не подойдет всем. Ее главный минус для обычного пользователя — отсутствие графического интерфейса. Если человек хочет перетащить картинку в окно, нажать Сжать и увидеть красивую шкалу, Oxipng будет выглядеть неудобно.
Недостатки:
-
нет GUI;
-
нужен терминал;
-
нет визуального сравнения результата;
-
нет ручной настройки качества как в lossy-компрессорах;
-
нет универсальной конвертации форматов;
-
не работает с JPEG/WebP/AVIF как с основными форматами;
-
--zopfliможет быть очень медленным; -
--alphaтехнически меняет невидимые пиксели; -
--scale16является lossy-операцией; -
--strip allможет удалить важные данные; -
APNG поддерживается ограниченно;
-
результат сильно зависит от исходного PNG;
-
уже оптимизированные файлы могут почти не уменьшиться.
Еще одно ограничение — психологическое. Пользователи часто ждут от сжатия картинки драматического результата. Но lossless PNG compression не всегда дает 50–80%. Если изображение уже грамотно сохранено, выигрыш может быть 1–5% или вообще отсутствовать. Это нормальное поведение, а не ошибка программы.
Oxipng также не заменяет pngquant. Если нужно радикально уменьшить PNG и допустима потеря точности цвета, lossy-подход будет эффективнее. Oxipng лучше использовать после такого шага как финальное дожатие.
Рекомендуемые настройки
Для сайта
oxipng -o 4 --strip safe --alpha *.png Это лучший базовый профиль для большинства PNG на сайте. Он дает хороший баланс скорости и размера, удаляет безопасные метаданные и оптимизирует прозрачность.
Для вложенных папок:
oxipng -r -o 4 --strip safe --alpha public/ assets/ Для документации
oxipng -r -o 4 --strip safe --alpha docs/images/ Для скриншотов, которые нужно сохранить максимально осторожно:
oxipng -r -o 3 --alpha docs/images/ Если метаданные важны, --strip safe можно убрать.
Для CI
oxipng -r -o 4 --strip safe --alpha --threads 4 assets/ В CI полезно ограничивать потоки, чтобы не перегружать окружение. Для проверочного режима:
oxipng -r --dry-run --json -o 4 --strip safe --alpha assets/ Для pre-commit
oxipng -o 4 --strip safe --alpha В pre-commit не стоит использовать слишком тяжелые режимы. Если hook работает долго, разработчики начнут его обходить. Лучше выбрать стабильный и быстрый профиль.
Для максимального сжатия
oxipng -o max --zopfli --fast --strip safe --alpha image.png Этот профиль уместен для финальных файлов, которые редко меняются. Для ежедневной разработки он может быть слишком медленным.
Для осторожной обработки
oxipng -o 2 image.png Такой вариант почти не вмешивается в дополнительные данные и быстро выполняет базовую оптимизацию.
Для проверки
oxipng --dry-run -o 4 --strip safe --alpha image.png Это команда, с которой стоит начинать работу с неизвестным набором файлов.
Для сохранения оригиналов
oxipng --dir optimized -o 4 --strip safe --alpha *.png Результаты попадут в отдельную папку, а исходники останутся на месте.
Частые ошибки при использовании
Ожидание графического окна
Oxipng не открывается как обычная программа с окном. Если запустить ее двойным кликом, пользователь не получит нормального рабочего интерфейса. Правильный способ — терминал.
Запуск не из той папки
Команда:
oxipng *.png работает только в текущей папке. Если пользователь находится не там, где лежат файлы, команда ничего не обработает или обработает не те PNG.
Использование --strip all без проверки
--strip all выглядит привлекательно, но может удалить важные данные. Для обычной оптимизации безопаснее:
oxipng --strip safe image.png Попытка сжать JPEG
Oxipng работает с PNG/APNG. Для JPEG нужны другие инструменты. Если в папке лежат .jpg, Oxipng не является подходящим оптимизатором для них.
Слишком тяжелый --zopfli в pre-commit
Pre-commit должен быть быстрым. Если добавить туда:
oxipng -o max --zopfli каждый коммит может стать раздражающе долгим. Лучше:
oxipng -o 4 --strip safe --alpha Ожидание одинакового процента сжатия
Один PNG может уменьшиться на десятки процентов, другой — почти не измениться. Это зависит от исходного кодирования, содержимого, палитры, прозрачности и метаданных.
Перезапись оригиналов без копии
Oxipng обычно оптимизирует на месте. Перед массовым первым запуском лучше использовать --dry-run, копию папки или --dir.
Путаница между --out и --dir
--out задает один выходной файл:
oxipng --out result.png image.png --dir задает папку для результатов:
oxipng --dir optimized *.png Неправильная работа с APNG
APNG нельзя обрабатывать как обычный PNG без проверки. Особенно опасен --strip all.
Использование --force без причины
--force записывает результат даже если он больше исходника. Для обычной оптимизации это противоречит задаче уменьшения файла.
Кому подойдет Oxipng
Oxipng подойдет frontend-разработчикам, которые хранят PNG в assets, public, static или docs/images. Команда легко добавляется в package scripts и выполняется перед сборкой или публикацией.
Программа подойдет backend- и DevOps-инженерам, которым нужна простая автоматизация изображений в CI. Oxipng не требует графического окружения и нормально работает в контейнерах.
Авторам документации Oxipng полезен для сжатия скриншотов. Скриншоты интерфейсов часто занимают много места, а в документации их может быть десятки. Одна рекурсивная команда решает проблему без ручной обработки.
Владельцам сайтов Oxipng подходит для уменьшения веса PNG без смены формата. Это особенно полезно для логотипов, иконок, схем, скриншотов и декоративных элементов.
Дизайнерам программа подойдет в том случае, если они не боятся терминала или работают в команде, где оптимизация ассетов автоматизирована. Для ручной drag-and-drop обработки им, вероятно, будет удобнее ImageOptim или Squoosh.
Rust-разработчикам Oxipng интересен еще и как библиотека. Его можно встроить в собственный инструмент, где PNG-оптимизация является одной из операций.
Кому Oxipng не подойдет
Oxipng не подойдет пользователю, которому нужен графический интерфейс. Если важны кнопки, предпросмотр, сравнение качества и работа мышью, лучше выбрать GUI-оболочку.
Программа не подойдет тому, кто хочет универсальный конвертер изображений. Oxipng не предназначен для массового преобразования JPEG в WebP, HEIC в PNG или PNG в AVIF.
Oxipng не подойдет для задач, где нужно редактировать изображение: обрезать, менять цвет, добавлять текст, работать со слоями, ретушировать, рисовать, менять композицию. Это не редактор.
Программа не подойдет, если нужно максимальное уменьшение PNG любой ценой и допустима потеря цветовой точности. В такой задаче первым кандидатом будет lossy-инструмент вроде pngquant, а Oxipng можно применить после него.
Oxipng также не лучший выбор для пользователя, который хочет оптимизировать один-два файла раз в год и не хочет открывать терминал. Для такого сценария проще веб-интерфейс или графическая программа.
Расширенные сценарии
Комбинация с pngquant
Если допустима lossy-компрессия, можно сначала уменьшить цветовую палитру через pngquant, затем дожать результат через Oxipng:
pngquant --quality=70-90 --ext .png --force image.png
oxipng -o 4 --strip safe --alpha image.png Этот сценарий часто дает более сильное уменьшение, чем один только lossless-подход. Но качество нужно проверять глазами, потому что pngquant меняет изображение.
Обработка ассетов перед релизом
Для финального релизного прохода:
oxipng -r -o max --zopfli --fast --strip safe --alpha assets/ Такую команду не обязательно запускать при каждой разработческой сборке. Ее место — перед публикацией, релизом или финальным экспортом.
Отдельная папка для результата
oxipng -r --dir optimized -o 4 --strip safe --alpha assets/ Этот режим удобен при тестировании. Но если внутри assets много вложенных папок и повторяющихся имен файлов, нужно учитывать, что структура может не сохраниться так, как ожидается.
Строгая проверка без оптимизации
Если нужно проверить файлы, не выполняя полноценную оптимизацию, можно использовать сочетания параметров, которые отключают преобразования и recompression. Например, --nx отключает transformations и deinterlacing по умолчанию, а --nz отключает recompression IDAT, если она не требуется из-за преобразований. Вместе они фактически выключают оптимизацию.
oxipng --nx --nz image.png Такой сценарий нужен редко, но он полезен для диагностики.
Ограничение больших файлов
Для папки с потенциально тяжелыми изображениями:
oxipng -r -o 4 --max-raw-size 100MB --timeout 60 uploads/ Это практичный подход для автоматической обработки, где нельзя заранее контролировать все входные файлы.
Советы по выбору параметров
Не стоит начинать с самого тяжелого режима. Для большинства проектов лучше сначала проверить:
oxipng --dry-run -r -o 4 --strip safe --alpha assets/ Если результат хороший, использовать эту команду как стандартную. Если выигрыш маленький, попробовать -o 6 на нескольких файлах:
oxipng --dry-run -o 6 --strip safe --alpha image.png Если разница между -o 4 и -o 6 незначительна, оставлять -o 4.
Для файлов с прозрачностью обычно включать:
--alpha Для обычного сайта обычно включать:
--strip safe Для APNG не использовать без проверки:
--strip all Для pre-commit не использовать тяжелый профиль:
-o max --zopfli Для финальных файлов можно использовать:
-o max --zopfli --fast Для CI ограничивать ресурсы:
--threads 4 Для первой обработки всегда проверять:
--dry-run Итоговая оценка
Oxipng — сильный консольный оптимизатор PNG/APNG для задач, где важны lossless-сжатие, скорость, многопоточность и автоматизация. Он не пытается быть универсальным графическим редактором и не маскируется под программу для всех. Его область — техническая, но очень востребованная: уменьшение веса PNG-файлов без визуального изменения результата.
Лучше всего Oxipng выглядит в рабочих процессах, где изображения повторно обрабатываются по одной и той же команде: frontend-ассеты, документация, скриншоты, CI, pre-commit, Docker, публикация статических сайтов. Для таких задач CLI-интерфейс становится не недостатком, а преимуществом: команду можно записать, повторить, автоматизировать и проверить.
Оптимальный профиль для большинства пользователей:
oxipng -r -o 4 --strip safe --alpha assets/ Для проверки:
oxipng -r --dry-run -o 4 --strip safe --alpha assets/ Для максимального финального сжатия:
oxipng -r -o max --zopfli --fast --strip safe --alpha assets/ Oxipng стоит выбирать, когда нужно надежно и воспроизводимо оптимизировать PNG, а не редактировать изображение вручную. Это программа для тех, кому важен результат в пайплайне: меньше размер файлов, меньше лишних данных, понятные параметры, повторяемая команда и хорошая пригодность для автоматизации.

