Oxipng: программа для оптимизации PNG

Oxipng: многопоточный оптимизатор PNG/APNG без потери качества — это консольная программа для уменьшения размера PNG-файлов. Она не редактирует изображение как графический редактор, не меняет композицию, не накладывает фильтры, не дорисовывает объекты и не работает как онлайн-сервис с кнопкой загрузки файла. Ее задача уже: взять готовый PNG, перепаковать его более эффективно, удалить лишние данные при выбранных настройках и записать файл меньшего размера.

Oxipng

ОнлайнОптимизацияБез установки

Для сжатия и оптимизации файлов: работает в браузере без установки, но зависит от сервиса и интернета.

⬇ Скачать ФотоМАСТЕР бесплатно
Oxipng нельзя скачать

Главная особенность Oxipng в том, что программа рассчитана на регулярную техническую работу с изображениями: оптимизация PNG для сайта, подготовка интерфейсных ассетов, уменьшение веса скриншотов, обработка папок проекта, запуск в Git hooks, CI/CD, Docker и локальных скриптах. Для пользователя, который привык к Photoshop, GIMP или Paint.NET, такой формат сначала выглядит непривычно: у Oxipng нет окна с панелью инструментов, нет кнопок Open, Save, Export и Preview. Весь интерфейс программы — это команда oxipng, список файлов и параметры вроде -o 4, --strip safe, --alpha, --dry-run, --recursive, --out, --dir, --threads.

Oxipng особенно полезен там, где PNG уже выбран как нужный формат. Например, если на сайте используются скриншоты с текстом, иконки с прозрачностью, элементы интерфейса, схемы, изображения в документации или статичные картинки в папке assets, программа позволяет уменьшить размер без заметного изменения картинки. В большинстве рабочих сценариев это именно lossless PNG compression: визуальное содержимое сохраняется, а размер уменьшается за счет более удачного сжатия, фильтрации и работы с PNG-структурой.

На практике Oxipng часто используют не как разовый инструмент, а как часть процесса публикации. Разработчик добавляет PNG-скриншоты в проект, запускает одну команду, получает оптимизированные файлы и отправляет их в репозиторий. Веб-мастер кладет изображения в папку сайта и прогоняет их перед загрузкой. Автор документации уменьшает вес десятков PNG, чтобы страницы быстрее открывались и занимали меньше места в архиве.

Содержание

Основные характеристики Oxipng

Параметр Описание
Название Oxipng
Полное описание многопоточный оптимизатор PNG/APNG, написанный на Rust
Тип программы CLI-утилита и Rust-библиотека
Основная задача сжатие PNG без визуальной потери качества
Поддерживаемые форматы PNG, APNG с ограничениями
Интерфейс командная строка
Основные параметры -o, --strip, --alpha, --interlace, --dry-run, --recursive, --out, --dir, --threads, --zopfli
Платформы Windows, macOS, Linux
Установка GitHub Releases, Cargo, Homebrew, пакетные менеджеры, Docker
Лицензия MIT
Подходит для автоматизации да

Oxipng работает с PNG-файлом на уровне его внутренней структуры. Формат PNG хранит изображение не просто как набор пикселей, а как последовательность блоков данных. Внутри есть сжатые данные изображения, метаданные, сведения о цвете, прозрачности, interlace-режиме и дополнительные chunks. Oxipng анализирует файл, пробует разные варианты фильтров и сжатия, а затем оставляет результат, который дает меньший размер.

Программа не превращает PNG в JPEG, WebP или AVIF. Она остается внутри PNG-формата. Это важный момент: если нужна именно конвертация в другой формат, Oxipng не заменяет ImageMagick, Squoosh, cwebp, avifenc или графические редакторы. Если задача — уменьшить PNG, сохранив формат и внешний вид, Oxipng подходит очень хорошо.

Второй важный момент — многопоточность. Oxipng использует ресурсы процессора для параллельной проверки вариантов оптимизации и обработки нескольких файлов. Это особенно заметно при пакетной оптимизации PNG-файлов: программа хорошо подходит для папок с десятками или сотнями скриншотов, иконок и интерфейсных элементов.

Чем Oxipng отличается от обычных графических оптимизаторов

Обычный пользовательский оптимизатор изображений чаще выглядит как окно, куда перетаскивают картинки. Там есть кнопки Add files, Optimize, Save, иногда предпросмотр до/после, выбор качества, ползунки и экспорт. Oxipng устроен иначе: он не пытается быть визуальной оболочкой. Он дает точные команды, предсказуемое поведение и удобство для автоматизации.

Команда:

oxipng -o 4 --strip safe --alpha *.png

заменяет целую ручную процедуру: открыть папку, выбрать файлы, включить безопасное удаление метаданных, применить оптимизацию прозрачности, дождаться результата и сохранить файлы. Для одиночной картинки GUI может быть комфортнее, но для регулярной обработки набора PNG командная строка быстрее и надежнее.

Oxipng хорошо воспринимается разработчиками, потому что его настройки легко записать в документацию проекта, Makefile, npm script, GitHub Actions, pre-commit hook или Docker-команду. Команду можно повторить через месяц и получить тот же тип обработки. Не нужно помнить, какие галочки были включены в графическом интерфейсе.

Для кого подходит Oxipng

Oxipng подходит не всем пользователям, но в своей нише он очень удобен. Программа особенно полезна для тех, кто работает с PNG регулярно и хочет контролировать процесс.

Веб-мастеру Oxipng помогает уменьшать размер PNG перед загрузкой на сайт. Это актуально для скриншотов программ, инструкций, иллюстраций интерфейса, PNG-иконок, логотипов на прозрачном фоне и изображений в статьях. Чем меньше PNG, тем быстрее он передается пользователю, тем меньше нагрузка на хостинг и CDN.

Frontend-разработчику Oxipng удобен для папок public, assets, static, images, img, dist. Достаточно запустить рекурсивную команду по каталогу, чтобы привести PNG к одному стандарту оптимизации. Особенно удобно, когда в проект постоянно попадают новые скриншоты или иконки.

Автору технической документации программа помогает уменьшать вес PNG-скриншотов. В документации часто используется много изображений: окна программ, настройки, фрагменты интерфейса, результаты команд. Oxipng сжимает их без визуального ухудшения, поэтому текст на скриншотах остается читаемым.

Разработчику приложений Oxipng полезен при подготовке PNG-ассетов: иконки, элементы UI, прозрачные изображения, спрайты, небольшие графические файлы. Параметр --alpha помогает дополнительно оптимизировать картинки с альфа-каналом.

Командам разработки Oxipng подходит для автоматического контроля. Программу можно запускать перед коммитом, в CI или в отдельной сборочной задаче. Это снижает риск, что в репозиторий попадут неоптимизированные PNG.

Не стоит выбирать Oxipng, если нужен визуальный предпросмотр, пакетная конвертация в WebP/AVIF, lossy-сжатие PNG с уменьшением палитры, редактирование изображения, ретушь, обрезка, изменение размера или работа с JPEG. Для этих задач нужны другие инструменты.

Установка Oxipng на Windows, macOS и Linux

Oxipng устанавливается несколькими способами. Выбор зависит от операционной системы и привычного рабочего окружения.

Установка на Windows

На Windows удобнее всего скачать готовый исполняемый файл из релизов проекта. После распаковки пользователь получает oxipng.exe. Его можно запускать из той же папки, где лежат изображения, либо добавить каталог с программой в переменную окружения PATH.

Типичный вариант для Windows:

  1. скачать архив с oxipng.exe;

  2. распаковать его, например, в C:Toolsoxipng;

  3. добавить C:Toolsoxipng в PATH;

  4. открыть Windows Terminal, PowerShell или Command Prompt;

  5. проверить запуск командой:

oxipng --version

Если команда выводит версию, программа доступна из любого каталога. После этого можно перейти в папку с изображениями:

cd C:UsersUserDesktopimages

и запустить оптимизацию:

oxipng -o 4 --strip safe --alpha *.png

На Windows важно учитывать поведение масок файлов. В классическом cmd.exe и PowerShell обработка *.png может отличаться от bash на Linux/macOS. В простых случаях Oxipng нормально получает список PNG, но при сложных сценариях с вложенными папками надежнее использовать --recursive и указывать каталог.

Установка на macOS

На macOS самый удобный способ — Homebrew:

brew install oxipng

После установки проверка выполняется так:

oxipng --version

Для оптимизации PNG в текущей папке используется команда:

oxipng -o 4 --strip safe --alpha *.png

На macOS Oxipng хорошо вписывается в работу с папками проектов, статичными ассетами и документацией. Если изображения лежат в ~/Sites/project/public/images, можно перейти в каталог:

cd ~/Sites/project/public/images

и обработать все PNG:

oxipng -o 4 --strip safe --alpha *.png

Установка на Linux

На Linux Oxipng часто доступен через пакетный менеджер дистрибутива. Для Arch Linux используется:

sudo pacman -S oxipng

Для Debian/Ubuntu доступность зависит от версии репозиториев. Если пакет есть в используемом репозитории, установка выглядит так:

sudo apt install oxipng

Для Fedora:

sudo dnf install oxipng

Если в системном репозитории устаревшая версия, удобнее установить Oxipng через Cargo.

Установка через Cargo

Oxipng написан на Rust, поэтому его можно установить как Rust-пакет:

cargo install oxipng

После установки бинарный файл обычно попадает в каталог Cargo, например ~/.cargo/bin. Этот путь должен быть добавлен в PATH, иначе оболочка не найдет команду oxipng.

Проверка:

oxipng --version

Способ через Cargo удобен тем, что дает свежую версию программы и одинаково работает на разных системах, где установлен Rust toolchain.

Запуск через Docker

Oxipng можно запускать через 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 указывает образ Oxipng, а -o 4 /work/file.png передает программе уровень оптимизации и путь к PNG.

Docker-вариант особенно удобен для CI/CD, где окружение должно быть воспроизводимым.

Первый запуск и интерфейс командной строки

Oxipng не имеет графического окна. Его интерфейс — это терминал и набор параметров. Сначала стоит выполнить команду справки:

oxipng --help

или короткий вариант:

oxipng -h

Справка показывает синтаксис команды, список основных параметров, режимы оптимизации, настройки удаления метаданных, interlace, фильтры, Zopfli, JSON-вывод, ограничение потоков и рекурсивную обработку.

Базовая структура команды выглядит так:

oxipng [options] <files>

В этой схеме:

  • oxipng — вызов программы;

  • [options] — параметры обработки;

  • <files> — один PNG, несколько PNG, маска *.png, путь к каталогу или - для stdin.

Пример минимальной команды:

oxipng image.png

Пример команды для нескольких файлов:

oxipng image1.png image2.png icon.png

Пример обработки всех PNG в текущем каталоге:

oxipng *.png

Пример оптимизации папки рекурсивно:

oxipng -r -o 4 --strip safe assets/

Командная строка Oxipng удобна тем, что каждый параметр явно виден. В графическом интерфейсе можно забыть, какие настройки применялись, а здесь вся логика записана в одной строке.

Базовая оптимизация одного PNG

Самый простой сценарий — оптимизация одного файла:

oxipng image.png

Эта команда запускает стандартный уровень оптимизации. Oxipng анализирует файл, пробует подходящие способы перепаковки и перезаписывает файл, если новый вариант меньше исходного. Если выигрыш не найден, программа не должна искусственно ухудшать ситуацию: она не обязана записывать больший файл вместо меньшего.

Для пользователя это выглядит просто: был image.png, после команды файл остается с тем же именем, но может занимать меньше места. Внешний вид картинки сохраняется. Именно поэтому Oxipng часто используют для скриншотов: текст, интерфейс, линии и мелкие детали остаются резкими, а размер файла уменьшается.

Команда без дополнительных параметров хорошо подходит для быстрой проверки. Но для сайта, документации и повторяемого рабочего процесса лучше явно указывать настройки:

oxipng -o 4 --strip safe --alpha image.png

Эта команда уже ближе к практическому web-сценарию. Она задает уровень оптимизации, безопасно удаляет лишние метаданные и включает дополнительную обработку прозрачности.

Оптимизация PNG для сайта

Для изображений на сайте обычно важны три вещи: размер файла, сохранение внешнего вида и предсказуемость обработки. Хороший рабочий вариант для PNG выглядит так:

oxipng -o 4 --strip safe --alpha *.png

Эта команда подходит для папки со скриншотами, иконками и PNG-иллюстрациями.

Разбор параметров:

Элемент команды Значение
oxipng запуск программы
-o 4 уровень оптимизации 4
--strip safe безопасное удаление метаданных
--alpha дополнительная оптимизация альфа-канала
*.png все PNG-файлы в текущей папке

Уровень -o 4 часто выбирают как разумный баланс. Он работает тщательнее стандартного режима, но не уходит в чрезмерно долгую оптимизацию, как максимальные режимы на больших наборах изображений. Для сайта это удобно: файлы становятся меньше, а время обработки остается приемлемым.

--strip safe удаляет те метаданные, которые не влияют на отображение изображения. Это важно для статей, инструкций, каталогов и документации, где обычно не нужны лишние служебные chunks. При этом безопасный режим не удаляет данные, влияющие на визуальное отображение.

--alpha полезен для PNG с прозрачностью: иконок, UI-элементов, логотипов, кнопок, декоративных блоков. Полностью прозрачные пиксели не видны пользователю, но их цветовые значения все равно могут ухудшать сжатие. Oxipng умеет привести такие данные к более удобному для компрессии виду.

Сравнение размера PNG до обработки: исходные файлы перед запуском Oxipng и PNGOUT

На скриншоте показан типичный смысл оптимизации: до обработки PNG-файл занимает больше места, хотя визуально это обычная картинка. Oxipng работает именно с такой ситуацией — он не меняет сюжет изображения, а ищет более компактную внутреннюю упаковку PNG.

Пакетная обработка файлов

Одна из сильных сторон Oxipng — пакетная обработка. Пользователь не обязан запускать программу для каждого файла отдельно. Можно обработать всю папку:

oxipng -o 4 --strip safe --alpha *.png

Если PNG лежат во вложенных папках, используется рекурсивный режим:

oxipng -r -o 4 --strip safe --alpha assets/

Параметр -r или --recursive говорит программе обходить дерево каталогов. Это удобно для проектов, где изображения разложены по подпапкам:

assets/  icons/  screenshots/  ui/  docs/

Команда:

oxipng -r -o 4 --strip safe --alpha assets/

обработает PNG и APNG в указанных каталогах, если файлы имеют подходящее расширение. Такой режим экономит время и уменьшает вероятность пропустить часть изображений.

Для сайта или документации рекурсивная обработка особенно удобна перед публикацией. Достаточно один раз проверить команду на копии проекта, после чего использовать ее как регулярный шаг подготовки.

Уровни оптимизации -o

Главный параметр Oxipng — уровень оптимизации:

-o 0-o 1-o 2-o 3-o 4-o 5-o 6-o max

Чем ниже уровень, тем быстрее обработка. Чем выше уровень, тем больше вариантов сжатия и фильтрации проверяет программа. При этом рост уровня не означает линейного выигрыша. Переход с -o 2 на -o 4 часто имеет практический смысл, а переход на максимальный режим может занять заметно больше времени при небольшом дополнительном выигрыше.

Уровень Практический смысл
-o 0 очень быстрый прогон, минимальная проверка вариантов
-o 1 быстрый режим для большого количества файлов
-o 2 стандартный баланс скорости и сжатия
-o 3 более тщательная оптимизация
-o 4 удачный режим для web-ассетов и документации
-o 5 более медленная обработка с усиленной проверкой
-o 6 самый высокий числовой уровень
-o max стабильный алиас максимального уровня

Для ежедневной работы чаще всего достаточно:

oxipng -o 4 --strip safe --alpha *.png

Для быстрой локальной проверки можно использовать:

oxipng -o 2 *.png

Для финальной обработки одного важного файла:

oxipng -o max --strip safe image.png

Нужно понимать, что Oxipng не является бесконечным brute-force-оптимизатором. Более высокий уровень почти всегда дает результат не хуже низкого, но редкие исключения возможны. Это связано с тем, что PNG-сжатие зависит от фильтров, структуры изображения, исходной упаковки и конкретных данных файла.

Удаление метаданных через --strip

PNG может содержать дополнительные chunks: цветовые данные, текстовые комментарии, информацию о физическом размере, профили, APNG-структуры и другие служебные блоки. Часть этих данных влияет на отображение, часть — нет. Oxipng позволяет управлять удалением метаданных через --strip.

Самый безопасный режим:

oxipng --strip safe image.png

Короткая форма:

oxipng -s image.png

--strip safe удаляет только безопасно удаляемые chunks. Это хороший выбор для сайта и документации, потому что он уменьшает файл и сохраняет данные, которые могут влиять на отображение.

Более жесткий режим:

oxipng --strip all image.png

--strip all удаляет все некритичные chunks. Такой режим может дать дополнительную экономию, но требует осторожности. Он подходит не всегда, потому что может убрать данные, которые важны для конкретного рабочего процесса: цветовой профиль, физическое разрешение, дополнительные сведения или структуру APNG. Для большинства web-сценариев разумнее начинать с --strip safe.

Также Oxipng поддерживает удаление конкретных chunks списком. Например:

oxipng --strip bKGD,cHRM image.png

Этот режим нужен опытным пользователям, которые понимают внутреннюю структуру PNG и хотят точечно удалить определенные блоки. Для обычной оптимизации сайта такой уровень ручной настройки редко требуется.

Работа с прозрачностью и параметром --alpha

PNG часто используют из-за прозрачности. Это иконки, логотипы, кнопки, элементы интерфейса, декоративные изображения, спрайты. В таких файлах есть альфа-канал: он определяет, какие пиксели полностью видимы, частично прозрачны или полностью прозрачны.

Параметр Oxipng:

oxipng --alpha image.png

включает дополнительную оптимизацию прозрачных областей. Программа меняет цветовые значения полностью прозрачных пикселей, чтобы улучшить сжатие. Пользователь не видит эти пиксели, потому что они полностью прозрачны. Поэтому внешний вид изображения сохраняется.

Важный нюанс: --alpha визуально без потерь, но технически это не всегда строгий bit-for-bit lossless. Если в конкретном workflow важны скрытые RGB-значения полностью прозрачных пикселей, параметр лучше не включать. Но для обычных web-иконок, PNG-кнопок, логотипов и интерфейсных ассетов --alpha обычно уместен.

Практическая команда:

oxipng -o 4 --strip safe --alpha icons/*.png

Такой вариант хорошо подходит для папки с иконками. Он уменьшает размер, сохраняет отображение и дополнительно работает с прозрачностью.

Управление interlace

PNG поддерживает чересстрочную загрузку Adam7. Interlace позволяет изображению постепенно проявляться при загрузке, но часто увеличивает размер оптимизированного файла. Oxipng дает прямое управление этим режимом:

oxipng --interlace off image.png
oxipng --interlace on image.png
oxipng --interlace keep image.png

Также встречается короткая форма через -i:

oxipng -i 0 image.png

Практический смысл режимов:

Режим Что делает
--interlace off отключает interlace
--interlace on включает Adam7 interlacing
--interlace keep сохраняет исходное состояние файла

Для большинства изображений сайта лучше использовать отключение interlace:

oxipng -o 4 --interlace off --strip safe image.png

или коротко:

oxipng -o 4 -i 0 --strip safe image.png

Если изображение очень большое и важно, чтобы оно постепенно появлялось при медленной загрузке, interlace можно оставить или включить. Но для иконок, скриншотов интерфейса и небольших PNG обычно выгоднее не увеличивать размер файла.

Пробный запуск через --dry-run

Перед массовой обработкой полезно посмотреть, что Oxipng сделает с файлами, не изменяя их. Для этого используется режим:

oxipng --dry-run -o 4 --strip safe --alpha image.png

Короткая форма:

oxipng -d -o 4 --strip safe --alpha image.png

--dry-run не записывает результат. Программа только показывает потенциальную экономию. Это один из самых полезных параметров для осторожной работы.

Например, перед обработкой всей папки сайта можно выполнить:

oxipng --dry-run -r -o 4 --strip safe --alpha public/images/

Если вывод выглядит ожидаемо, можно запустить команду без --dry-run:

oxipng -r -o 4 --strip safe --alpha public/images/

Такой подход особенно важен, если изображения уже опубликованы, находятся в рабочем репозитории или используются в документации. Сначала проверяется экономия, потом выполняется запись.

Сохранение результата в другой файл

По умолчанию Oxipng оптимизирует файл на месте. Это удобно, но не всегда желательно. Иногда нужно сохранить исходник и получить оптимизированную копию.

Для одного файла используется --out:

oxipng -o 4 --out image.optimized.png image.png

Здесь image.png остается исходным файлом, а результат записывается в image.optimized.png.

Для записи нескольких файлов в отдельную папку используется --dir:

oxipng -o 4 --dir optimized *.png

Если папки optimized нет, программа создает ее. Такой режим удобен для тестирования: можно сравнить исходные PNG и оптимизированные копии, проверить отображение, посмотреть размер и только после этого заменить файлы в проекте.

При рекурсивной обработке важно учитывать, что --dir не всегда сохраняет исходную структуру вложенных каталогов. Поэтому перед массовой обработкой сложных директорий лучше сначала сделать пробный запуск или работать с копией проекта.

Сохранение времени и прав файла

Параметр:

oxipng --preserve image.png

или коротко:

oxipng -p image.png

сохраняет permissions и timestamps, если это возможно. Это полезно в проектах, где время изменения файла используется сборочной системой, кэшем, синхронизацией или резервным копированием.

Например:

oxipng -p -o 4 --strip safe *.png

Такой вариант применяет оптимизацию, но старается не менять служебные атрибуты файла. В обычной ручной обработке это не всегда важно, но в автоматизированных процессах параметр может быть полезен.

Управление потоками через --threads

Oxipng использует многопоточность. По умолчанию программа ориентируется на логические CPU, но пользователь может ограничить количество потоков:

oxipng --threads 4 *.png

Короткая форма:

oxipng -t 4 *.png

Ограничение потоков полезно, когда оптимизация выполняется на рабочем компьютере параллельно с другими задачами. Например, если нужно сжать 500 PNG, но не хочется полностью занимать процессор, можно указать:

oxipng -t 4 -r -o 4 --strip safe assets/

На сервере или в CI/CD это тоже важно. Слишком агрессивная оптимизация может занять много CPU и памяти. Ограничение потоков делает процесс более предсказуемым.

Для строгой последовательной обработки есть параметр:

oxipng --sequential *.png

Он полезен, если важен детерминированный порядок обработки файлов. Для большинства пользователей достаточно --threads.

Быстрый режим --fast

Параметр:

oxipng --fast image.png

выполняет быструю оценку включенных фильтров и затем основной прогон по лучшему найденному варианту. Он полезен, когда включено много фильтров, а CPU-ядер меньше, чем вариантов проверки.

Для большого набора PNG можно использовать:

oxipng --fast -o 4 --strip safe *.png

На практике чаще выбирают готовые уровни -o, потому что они уже задают разумные комбинации. Но --fast полезен при ручной настройке фильтров или при обработке большого числа файлов, где скорость важнее дополнительного процента экономии.

Zopfli-сжатие через --zopfli

Oxipng поддерживает Zopfli:

oxipng --zopfli image.png

Короткая форма:

oxipng -z image.png

Zopfli может дать более сильное сжатие, но работает заметно медленнее. Это не режим для ежедневной обработки большого каталога скриншотов, если время имеет значение. Его разумно использовать для отдельных важных PNG, которые будут долго храниться, многократно отдаваться пользователям или входить в публичный релиз.

Практический вариант:

oxipng -o max -z --strip safe image.png

Для больших изображений можно ограничить число итераций Zopfli:

oxipng -z --zi 10 image.png

или остановку без улучшения:

oxipng -z --zi 50 --ziwi 5 image.png

Если нужно просто подготовить изображения для статьи, сайта или документации, чаще достаточно:

oxipng -o 4 --strip safe --alpha *.png

Zopfli стоит оставить для редких случаев, где максимальная экономия важнее времени обработки.

Фильтры PNG и ручная настройка --filters

Oxipng умеет пробовать разные PNG filter strategies. Пользователь может управлять этим через --filters или -f.

Пример:

oxipng -f 0-4 image.png

или:

oxipng -f 0,1,6,7 image.png

Фильтры PNG влияют на то, как данные изображения подготавливаются перед Deflate-сжатием. Разные изображения лучше сжимаются с разными фильтрами. Скриншот интерфейса, логотип с прозрачностью, схема, текстовая картинка и фотографический PNG могут вести себя по-разному.

Oxipng поддерживает классические delta-фильтры:

Номер Фильтр
0 None
1 Sub
2 Up
3 Average
4 Paeth

Также есть эвристические стратегии:

Номер Стратегия
5 MinSum
6 Entropy
7 Bigrams
8 BigEnt
9 Brute

Обычному пользователю не нужно вручную подбирать фильтры. Уровни -o 0-o 6 уже задают подходящие наборы. Но наличие --filters показывает, что Oxipng не просто пересохраняет PNG, а действительно проверяет разные варианты внутреннего представления изображения.

Deflate-настройки и --zc

PNG использует Deflate-сжатие. В Oxipng есть параметр:

oxipng --zc 12 image.png

Он управляет уровнем Deflate-сжатия в основных compression trials. В обычной работе этот параметр почти не нужен, потому что уровни -o уже задают значения автоматически. Ручная настройка --zc полезна при тонком тестировании или сравнении разных режимов на конкретном наборе PNG.

Если явно указать --zc, он переопределит соответствующую часть пресета -o. Поэтому не стоит без необходимости смешивать ручные параметры и готовые уровни. Для надежной повседневной команды лучше оставить:

oxipng -o 4 --strip safe --alpha *.png

JSON-вывод для скриптов

Для автоматизации полезен параметр:

oxipng --json -o 4 image.png

Короткая форма:

oxipng -j -o 4 image.png

В этом режиме результат выводится как JSON. Это удобно, если нужно обработать данные программно: собрать статистику экономии, сохранить отчет, проверить результаты в CI или встроить оптимизацию в собственный скрипт.

Например, команда может быть частью пайплайна, который сначала запускает Oxipng, затем анализирует JSON и решает, нужно ли коммитить измененные файлы.

Для человека обычный текстовый вывод удобнее. Для скрипта JSON-вывод надежнее, потому что его проще разобрать без регулярных выражений.

Вывод в stdout

Oxipng умеет писать результат в stdout:

oxipng --stdout image.png > optimized.png

Такой режим полезен для Unix-пайплайнов, контейнеров и случаев, когда не нужно напрямую изменять исходный файл. Команда берет image.png, оптимизирует поток и перенаправляет результат в optimized.png.

Для стандартной ручной работы проще использовать --out:

oxipng --out optimized.png image.png

Но --stdout важен для автоматизации, где данные передаются между командами.

Рекурсивная оптимизация каталога проекта

Один из типичных сценариев — проект сайта:

project/  public/    images/      screenshots/      icons/      article/

Для обработки всех PNG в public/images подходит команда:

oxipng -r -o 4 --strip safe --alpha public/images/

Перед первым запуском лучше сделать пробный прогон:

oxipng --dry-run -r -o 4 --strip safe --alpha public/images/

Если вывод показывает ожидаемую экономию, запускается реальная обработка:

oxipng -r -o 4 --strip safe --alpha public/images/

После этого стоит проверить изменения:

git diff --stat

или посмотреть размеры файлов:

du -sh public/images/

Oxipng удобен именно тем, что одна команда одинаково применима к сотням PNG. Не нужно открывать каждый файл, выбирать настройки и сохранять результат вручную.

Работа с PNG-скриншотами

Скриншоты часто хорошо сжимаются lossless-методами. В них много плоских областей, текста, повторяющихся цветов, интерфейсных линий и прямоугольников. PNG подходит для таких изображений, потому что сохраняет четкость. Oxipng помогает уменьшить их вес, не превращая текст в размытый JPEG.

Команда для папки со скриншотами:

oxipng -o 4 --strip safe screenshots/*.png

Если скриншоты имеют прозрачность, добавляют --alpha:

oxipng -o 4 --strip safe --alpha screenshots/*.png

Если скриншоты лежат во вложенных папках:

oxipng -r -o 4 --strip safe screenshots/

Для документации это особенно полезно. Большие PNG-скриншоты быстро раздувают размер проекта. Oxipng уменьшает их без ухудшения читаемости.

Размер файла после обработки Oxipng: оптимизированный PNG стал заметно меньше

На примере видно, что после обработки файл Oxipng стал меньше исходного PNG. Это типичный сценарий использования программы: не менять изображение визуально, а убрать лишний вес за счет более эффективного PNG-сжатия.

Работа с иконками и прозрачными PNG

Иконки и UI-элементы часто содержат альфа-канал. Для них хорошо подходит команда:

oxipng -o 4 --strip safe --alpha icons/*.png

Если иконки лежат в разных подпапках:

oxipng -r -o 4 --strip safe --alpha assets/icons/

Для иконок особенно важно не использовать неподходящее lossy-сжатие. JPEG не сохраняет прозрачность и может испортить резкие края. Oxipng оставляет формат PNG, поэтому подходит для прозрачных интерфейсных элементов.

Если в проекте есть SVG-иконки, Oxipng их не обработает. Он работает с PNG/APNG, а не с векторной графикой. Для SVG нужны SVGO или другие специализированные инструменты.

Работа с APNG

Oxipng поддерживает APNG, но с ограничениями. APNG — это animated PNG, то есть PNG с анимацией. Программа может выполнять alpha-optimization, refiltering и recompression кадров, но не все трансформации доступны для анимированных файлов.

Для APNG важно не применять бездумно агрессивные настройки. Например, --strip all может быть опасен для анимации, потому что APNG использует специальные chunks. Безопасный вариант:

oxipng -o 4 --strip safe animation.apng

Если APNG содержит прозрачность:

oxipng -o 4 --strip safe --alpha animation.apng

После обработки APNG нужно проверить воспроизведение. Для статичных PNG достаточно открыть картинку, а для APNG важно убедиться, что анимация сохранилась и кадры отображаются правильно.

Oxipng не является редактором APNG. Он не меняет тайминги кадров, не создает анимацию, не удаляет кадры и не собирает APNG из набора изображений. Его роль — оптимизация существующего файла.

Интеграция с pre-commit

Oxipng удобно запускать перед коммитом. Это помогает не добавлять в репозиторий неоптимизированные PNG. Для команды разработки такой подход особенно полезен: каждый участник работает в своем редакторе, но изображения перед коммитом приводятся к одному стандарту.

Пример .pre-commit-config.yaml:

repos:  - repo:     rev: v10.0.0    hooks:      - id: oxipng        args: ["-o", "4", "--strip", "safe", "--alpha"]

После настройки pre-commit будет запускать Oxipng для подходящих файлов. Если PNG изменится после оптимизации, пользователь увидит это в Git и сможет добавить оптимизированную версию.

Практический смысл такого hook простой: оптимизация перестает быть ручным этапом, о котором нужно помнить. PNG автоматически проходит обработку перед попаданием в историю проекта.

Интеграция с GitHub Actions

Oxipng хорошо подходит для CI/CD. Например, в GitHub Actions можно установить программу и запустить ее по PNG-файлам. В проектах с документацией или автоматически генерируемыми скриншотами это особенно удобно.

Пример шага:

- name: Install Oxipng  run: cargo install oxipng- name: Optimize PNGs  run: oxipng -o 4 --strip safe --alpha *.png

Если PNG лежат в папке:

- name: Optimize PNGs  run: oxipng -r -o 4 --strip safe --alpha public/images/

Для проверки без изменения файлов:

- name: Check PNG optimization  run: oxipng --dry-run -r -o 4 --strip safe --alpha public/images/

В автоматическом пайплайне важно заранее определить, должен ли CI только проверять изображения или сам коммитить оптимизированные версии. Oxipng подходит для обоих подходов, потому что его поведение легко зафиксировать одной командой.

Интеграция в npm scripts и Makefile

Даже если проект не написан на Rust, Oxipng можно использовать в сборке. Например, в package.json:

{  "scripts": {    "optimize:png": "oxipng -r -o 4 --strip safe --alpha public/images/"  }}

После этого команда запускается так:

npm run optimize:png

В Makefile можно добавить:

optimize-png:	oxipng -r -o 4 --strip safe --alpha public/images/

Запуск:

make optimize-png

Такой формат удобен для команды: никто не запоминает длинную строку параметров, все используют одну стандартную задачу.

Использование в Docker-пайплайне

Docker-образ Oxipng полезен там, где не хочется ставить утилиту напрямую. Например, обработка одного файла:

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/images

Для CI это удобно: окружение не зависит от установленного пакета в системе. Контейнер получает папку с изображениями, запускает Oxipng и завершает работу.

Практические команды для разных задач

Задача Команда
Быстро оптимизировать один PNG oxipng image.png
Оптимизировать один PNG для сайта oxipng -o 4 --strip safe --alpha image.png
Обработать все PNG в папке oxipng -o 4 --strip safe --alpha *.png
Рекурсивно обработать каталог oxipng -r -o 4 --strip safe --alpha assets/
Проверить экономию без записи oxipng --dry-run -o 4 image.png
Сохранить результат в другой файл oxipng -o 4 --out optimized.png source.png
Записать результаты в отдельную папку oxipng -o 4 --dir optimized *.png
Ограничить количество потоков oxipng -t 4 -o 4 *.png
Максимально сжать отдельный файл oxipng -o max -z --strip safe image.png
Сохранить timestamps и permissions oxipng -p -o 4 image.png
Получить JSON-вывод oxipng --json -o 4 image.png
Отключить interlace oxipng -o 4 --interlace off image.png

Эти команды покрывают большую часть обычных сценариев. Для публикации на сайте лучше всего начинать с -o 4 --strip safe --alpha. Для тестирования использовать --dry-run. Для финальной обработки единичных важных PNG применять -o max или -z, если время обработки не критично.

Какие файлы Oxipng обрабатывает лучше всего

Oxipng особенно хорошо подходит для PNG, где есть повторяющиеся области, четкие границы и не слишком хаотичная структура. Это:

  • скриншоты программ;

  • интерфейсные изображения;

  • PNG-иконки;

  • схемы;

  • графики;

  • изображения с прозрачностью;

  • UI-ассеты;

  • статичные иллюстрации в документации;

  • PNG, экспортированные с неоптимальными настройками.

Если PNG уже прошел через сильный оптимизатор, выигрыш может быть небольшим. Это нормально. Oxipng не обещает одинаковый процент уменьшения для всех файлов. Результат зависит от исходного компрессора, метаданных, прозрачности, interlace, битовой глубины, палитры и структуры изображения.

Фотографические PNG часто весят много не потому, что плохо сжаты, а потому что PNG как формат не всегда подходит для фото. В таком случае Oxipng может уменьшить файл, но более радикальный результат даст перевод в JPEG, WebP или AVIF. Это уже не задача Oxipng.

Чего Oxipng не делает

Oxipng важно оценивать по его реальному назначению. Программа не является универсальным редактором изображений.

Она не делает:

  • редактирование изображения;

  • кадрирование;

  • изменение размера;

  • поворот;

  • ретушь;

  • удаление фона;

  • наложение текста;

  • работу со слоями;

  • конвертацию PNG в JPEG/WebP/AVIF;

  • lossy-сжатие через уменьшение палитры;

  • визуальное сравнение до/после;

  • пакетную обработку JPEG;

  • оптимизацию SVG;

  • полноценное редактирование APNG-анимации.

Это не недостаток, а граница назначения. Oxipng хорош именно как PNG optimizer для командной строки. Если нужно изменить размер картинки, стоит использовать ImageMagick, GraphicsMagick, Squoosh, Photoshop, GIMP или другой инструмент. Если нужно lossy-сжатие PNG, стоит смотреть в сторону pngquant. Если нужна визуальная ручная обработка, удобнее GUI-программы.

Плюсы Oxipng

Главный плюс Oxipng — четкая специализация. Программа делает одну задачу и делает ее удобно для автоматизации: уменьшает PNG без визуальной потери качества.

Сильные стороны:

  • работает из командной строки;

  • подходит для Windows, macOS и Linux;

  • использует многопоточность;

  • поддерживает пакетную обработку;

  • умеет рекурсивно обходить каталоги;

  • поддерживает безопасное удаление метаданных;

  • имеет понятные уровни оптимизации -o;

  • умеет работать с прозрачностью через --alpha;

  • поддерживает APNG с ограничениями;

  • подходит для Docker;

  • подходит для Git hooks и CI/CD;

  • может использоваться как Rust-библиотека;

  • дает JSON-вывод для скриптов;

  • позволяет сохранять результат в другой файл или папку;

  • умеет ограничивать число потоков.

Особенно ценна предсказуемость. Команду Oxipng можно записать в README проекта, и любой участник команды повторит тот же способ обработки. Это удобнее, чем инструкция открыть графическую программу и включить нужные галочки.

Минусы Oxipng

Недостатки Oxipng связаны в основном с форматом работы. Пользователю, который никогда не открывал терминал, программа может показаться сложнее обычного приложения с кнопками.

Основные минусы:

  • нет графического интерфейса;

  • нет встроенного предпросмотра;

  • нет визуального сравнения до/после;

  • работает только с PNG/APNG;

  • не выполняет lossy-сжатие палитры как pngquant;

  • не конвертирует в WebP или AVIF;

  • максимальные режимы могут быть медленными;

  • --zopfli требует заметно больше времени;

  • --alpha подходит не для всех технических workflow;

  • APNG поддерживается ограниченно;

  • при массовой обработке нужно осторожно выбирать каталог;

  • --strip all может удалить больше данных, чем ожидает пользователь.

Для новичка главный барьер — не параметры, а сама командная строка. Но после нескольких команд Oxipng становится простым инструментом: чаще всего достаточно запомнить -o 4 --strip safe --alpha.

Типичные ошибки при использовании

Первая частая ошибка — запуск команды не из той папки. Пользователь открывает терминал, вводит:

oxipng *.png

а файлов в текущем каталоге нет. Нужно сначала перейти в нужную папку:

cd path/to/images

или указать путь явно:

oxipng -o 4 --strip safe path/to/images/*.png

Вторая ошибка — слишком агрессивное удаление метаданных:

oxipng --strip all image.png

Для обычных PNG это может быть нормально, но для файлов с важными цветовыми данными, профилями или APNG лучше начинать с:

oxipng --strip safe image.png

Третья ошибка — использование максимального режима для всех файлов подряд:

oxipng -o max -z -r images/

Такая команда может работать очень долго. Для регулярной обработки лучше:

oxipng -r -o 4 --strip safe --alpha images/

Четвертая ошибка — включение --alpha там, где скрытые RGB-значения полностью прозрачных пикселей имеют значение. В обычной web-графике это редкость, но в некоторых игровых, технических или специальных workflow такие данные могут использоваться.

Пятая ошибка — отсутствие пробного запуска перед массовой обработкой. Для нового проекта лучше сначала:

oxipng --dry-run -r -o 4 --strip safe --alpha images/

и только потом выполнять реальную запись.

Рекомендованные настройки

Для большинства пользователей достаточно нескольких устойчивых рецептов.

Для сайта

oxipng -r -o 4 --strip safe --alpha public/images/

Это хороший баланс скорости, размера и безопасности.

Для скриншотов документации

oxipng -o 4 --strip safe screenshots/*.png

Если есть прозрачность:

oxipng -o 4 --strip safe --alpha screenshots/*.png

Для иконок

oxipng -o 4 --strip safe --alpha icons/*.png

Для осторожной проверки

oxipng --dry-run -r -o 4 --strip safe assets/

Для финального единичного файла

oxipng -o max -z --strip safe image.png

Для слабого компьютера или параллельной работы

oxipng -t 2 -o 4 --strip safe *.png

Для отдельной выходной папки

oxipng -o 4 --dir optimized *.png

Сравнение с аналогами

Oxipng находится в группе инструментов для оптимизации изображений, но сравнивать его нужно не с графическими редакторами в целом, а с конкретными программами, которые решают близкие задачи.

Программа Тип Форматы Главное отличие
Oxipng CLI, Rust, lossless PNG/APNG быстрый многопоточный оптимизатор PNG, удобный для автоматизации
OptiPNG CLI, lossless PNG и входные форматы для PNG-оптимизации классический инструмент, от которого исторически отталкивался Oxipng
PNGOUT CLI PNG сильное сжатие, но менее удобный современный workflow
pngquant CLI PNG lossy-сжатие через палитру, часто дает меньший размер, но меняет изображение
ImageOptim GUI для macOS разные форматы удобен для ручной обработки, использует набор оптимизаторов
FileOptimizer GUI для Windows много форматов универсальная обработка файлов, но тяжелее для точечной PNG-only задачи
Squoosh Web/PWA PNG, JPEG, WebP, AVIF и другие визуальный интерфейс, предпросмотр, но нет такой же удобной массовой CLI-автоматизации
ImageMagick CLI множество форматов широкая обработка и конвертация, но Oxipng точнее сфокусирован на PNG-оптимизации

Oxipng и OptiPNG

OptiPNG — один из самых известных классических оптимизаторов PNG. Oxipng исторически появился как переосмысление подхода OptiPNG с упором на Rust, многопоточность и современную архитектуру. Оба инструмента работают через командную строку и занимаются lossless-оптимизацией PNG.

Oxipng удобнее в сценариях, где нужно быстро обработать много файлов и встроить команду в автоматизацию. Его параметры хорошо читаются, а команда вида:

oxipng -o 4 --strip safe --alpha *.png

легко переносится в документацию проекта, CI или pre-commit.

OptiPNG остается полезным инструментом, но в современных workflow Oxipng чаще выглядит практичнее за счет многопоточности, активного развития и удобных режимов для разработчиков.

Oxipng и PNGOUT

PNGOUT известен сильным сжатием PNG, но его использование менее удобно в современных автоматизированных процессах. Oxipng проще встроить в повторяемый workflow, особенно если речь о Linux/macOS/Windows-командах, Docker и Git-интеграции.

PNGOUT может быть интересен для ручного подбора минимального размера отдельных файлов. Oxipng сильнее как регулярный инструмент: обработать папку, запустить в CI, добавить в pre-commit, ограничить потоки, получить JSON-результат.

Oxipng и pngquant

pngquant решает другую задачу. Он может резко уменьшать PNG за счет преобразования изображения к палитре и lossy-сжатия. Это часто дает намного меньший размер, но картинка уже не остается строго прежней. На иконках, простых иллюстрациях и изображениях с ограниченным числом цветов результат может быть отличным. На скриншотах с текстом, градиентах и интерфейсах иногда появляются артефакты или изменение цветов.

Oxipng сохраняет PNG без визуальной потери качества. Поэтому для строгой оптимизации исходного PNG лучше начинать с Oxipng. Если нужен максимальный выигрыш и допустимы изменения, можно сначала использовать pngquant, а затем прогнать результат через Oxipng:

pngquant --quality 70-90 *.pngoxipng -o 4 --strip safe --alpha *-fs8.png

Это уже комбинированный workflow, а не чистая lossless-оптимизация.

Oxipng и ImageOptim

ImageOptim удобен на macOS, если пользователь хочет перетаскивать изображения в окно и получать результат без терминала. Это хороший вариант для ручной обработки небольшого числа файлов.

Oxipng лучше подходит для автоматизации. Его проще запускать в скриптах, CI/CD, pre-commit и Docker. Если пользователь работает один раз с десятью картинками, ImageOptim может быть удобнее. Если PNG обрабатываются регулярно в проекте, Oxipng практичнее.

Oxipng и FileOptimizer

FileOptimizer — Windows-программа с графическим интерфейсом и поддержкой множества форматов. Она удобна для пользователей, которым нужно оптимизировать не только PNG, но и другие типы файлов. Однако универсальность делает ее менее точечной.

Oxipng лучше в сценарии: нужно оптимизировать именно PNG и встроить это в технический процесс. FileOptimizer лучше, когда нужен один GUI-инструмент для разных форматов и ручной пакетной обработки на Windows.

Oxipng и Squoosh

Squoosh удобен для визуальной работы: загрузить изображение, выбрать кодек, посмотреть результат, изменить параметры. В Squoosh есть OxiPNG-режим, поэтому пользователь может работать с похожей технологией через браузерный интерфейс.

OxiPNG-режим в Squoosh: визуальное сравнение исходного PNG и результата

Но Squoosh не так удобен для массовой локальной обработки папок и автоматизации. Oxipng выигрывает там, где нужно обработать десятки файлов одной командой, запустить процесс в GitHub Actions или добавить шаг в сборку.

Oxipng и ImageMagick

ImageMagick — мощный инструмент для обработки изображений: изменение размера, конвертация, водяные знаки, кадрирование, повороты, пакетные операции. Oxipng намного уже по назначению. Он не конкурирует с ImageMagick как редактор или конвертер форматов.

Правильная связка может выглядеть так: ImageMagick меняет размер или конвертирует исходник в PNG, а Oxipng затем оптимизирует итоговый PNG:

magick input.jpg -resize 1200x output.pngoxipng -o 4 --strip safe output.png

Такой подход разделяет задачи: ImageMagick отвечает за преобразование изображения, Oxipng — за PNG-оптимизацию.

Качество результата

Качество работы Oxipng нельзя оценивать одним универсальным процентом. На одном PNG программа может дать заметное уменьшение, на другом — почти ничего. Это нормально и зависит от исходника.

На результат влияют:

  • чем был создан исходный PNG;

  • есть ли лишние метаданные;

  • используется ли прозрачность;

  • включен ли interlace;

  • какая битовая глубина у файла;

  • есть ли палитра;

  • насколько изображение похоже на скриншот, схему или фотографию;

  • проходил ли файл через другие оптимизаторы;

  • какой уровень -o выбран;

  • включен ли --alpha;

  • используется ли --zopfli.

Oxipng особенно хорош как регулярный контроль качества PNG. Даже если отдельный файл уменьшается всего на несколько килобайт, на большом наборе изображений экономия становится ощутимой. Для сайта, документации и репозитория это практический результат: меньше размер проекта, быстрее загрузка, аккуратнее хранение ассетов.

Производительность

Производительность Oxipng зависит от количества файлов, размера изображений, уровня оптимизации, числа потоков и включенных режимов. Стандартный уровень -o 2 работает быстро. Уровень -o 4 обычно остается приемлемым для web-задач. -o max и --zopfli могут быть медленными, особенно на больших PNG.

Правильная стратегия:

  • для повседневной обработки использовать -o 4;

  • для быстрой проверки использовать -o 2 или --dry-run;

  • для финальных единичных файлов использовать -o max;

  • для больших папок ограничивать потоки через --threads;

  • для очень больших файлов применять --max-raw-size или --timeout.

Параметр --timeout задает максимальное время, которое Oxipng должен тратить на оптимизацию:

oxipng --timeout 30 -o max image.png

Параметр --max-raw-size помогает не обрабатывать чрезмерно большие изображения:

oxipng --max-raw-size 20MB -r images/

Такие ограничения полезны в CI, где нельзя допускать бесконечно долгой обработки.

Безопасный рабочий процесс

Для ответственной оптимизации лучше использовать простой порядок:

  1. сделать резервную копию или работать в Git;

  2. выполнить --dry-run;

  3. выбрать настройки;

  4. обработать файлы;

  5. проверить изменения;

  6. открыть несколько изображений вручную;

  7. закоммитить результат.

Пример:

git statusoxipng --dry-run -r -o 4 --strip safe --alpha public/images/oxipng -r -o 4 --strip safe --alpha public/images/git diff --statgit status

Такой процесс безопасен, потому что изменения контролируются. Если что-то пошло не так, Git позволяет вернуть исходные файлы.

Практический пример для статьи со скриншотами

Представим папку:

article/  screenshots/    install.png    settings.png    result.png

Нужно подготовить картинки к публикации. Команда:

cd article/screenshotsoxipng -o 4 --strip safe *.png

Если скриншоты имеют прозрачность:

oxipng -o 4 --strip safe --alpha *.png

Если нужно сначала посмотреть возможную экономию:

oxipng --dry-run -o 4 --strip safe --alpha *.png

Если нужно сохранить оптимизированные копии отдельно:

oxipng -o 4 --strip safe --alpha --dir optimized *.png

После этого в статье можно использовать уже уменьшенные PNG. Визуально скриншоты остаются прежними, но страница загружается быстрее.

Практический пример для frontend-проекта

Структура:

frontend/  public/    images/    icons/    screenshots/

Команда:

oxipng -r -o 4 --strip safe --alpha public/

Для npm script:

{  "scripts": {    "images:png": "oxipng -r -o 4 --strip safe --alpha public/"  }}

Запуск:

npm run images:png

Такую команду можно выполнять перед релизом. Она не зависит от редактора, не требует ручного открытия файлов и легко повторяется на любой машине, где установлен Oxipng.

Практический пример для Windows

Пользователь кладет oxipng.exe в папку C:Toolsoxipng, добавляет путь в PATH, открывает Windows Terminal и переходит в папку с картинками:

cd C:UsersUserDesktoppng

Пробная проверка:

oxipng --dry-run -o 4 --strip safe --alpha *.png

Реальная обработка:

oxipng -o 4 --strip safe --alpha *.png

Для одного файла с сохранением копии:

oxipng -o 4 --out image.optimized.png image.png

Такой сценарий позволяет использовать Oxipng на Windows без графической оболочки. Команды выглядят технически, но после настройки PATH программа работает так же просто, как любая другая консольная утилита.

Практический пример для macOS

Установка:

brew install oxipng

Переход в папку:

cd ~/Desktop/screenshots

Оптимизация:

oxipng -o 4 --strip safe --alpha *.png

Рекурсивная обработка проекта:

oxipng -r -o 4 --strip safe --alpha ~/Sites/project/public/images/

Ограничение потоков:

oxipng -t 4 -r -o 4 --strip safe ~/Sites/project/public/images/

На macOS Oxipng удобно сочетать с Finder, Terminal, Git и локальными сборочными скриптами.

Практический пример для Linux

Установка через пакетный менеджер или Cargo, затем обработка каталога:

oxipng -r -o 4 --strip safe --alpha ./static/

Для серверной папки:

oxipng -r -o 4 --strip safe /var/www/site/images/

Если нужно не нагружать сервер:

oxipng -t 2 -r -o 4 --strip safe /var/www/site/images/

На Linux Oxipng хорошо подходит для cron-задач, CI, сборочных pipeline и локальной обработки ассетов перед деплоем.

Когда выбирать Oxipng

Oxipng стоит выбирать, когда задача звучит так: нужно уменьшить PNG, сохранить формат, не ухудшить внешний вид и сделать это повторяемо. Это точное назначение программы.

Лучшие сценарии:

  • оптимизация PNG для сайта;

  • подготовка скриншотов;

  • уменьшение размера PNG в документации;

  • обработка иконок;

  • оптимизация прозрачных изображений;

  • обработка папки проекта;

  • автоматизация через Git;

  • запуск в CI/CD;

  • Docker-обработка;

  • интеграция в Rust-проект как библиотека.

Oxipng особенно хорош для пользователей, которые не боятся терминала. Но даже для новичка программа не слишком сложна, если начать с одной команды:

oxipng -o 4 --strip safe --alpha *.png

Когда лучше выбрать другой инструмент

Если нужен визуальный интерфейс, лучше ImageOptim, FileOptimizer, Squoosh или Curtail. Если нужно lossy-сжатие PNG, лучше pngquant. Если нужна конвертация в WebP или AVIF, лучше Squoosh, ImageMagick, cwebp или avifenc. Если нужно изменить размер, обрезать картинку, повернуть или наложить водяной знак, лучше ImageMagick, Photoshop, GIMP, Paint.NET или другой редактор.

Oxipng не должен выполнять чужие задачи. Его сила именно в фокусе: PNG optimization, lossless compression, командная строка, пакетная обработка, автоматизация.

Итоги

Oxipng — сильный инструмент для оптимизации PNG и APNG в техническом workflow. Он подходит для сайтов, документации, интерфейсных ассетов, иконок, скриншотов и проектов, где изображения нужно регулярно приводить к компактному виду. Программа не имеет графического интерфейса, но это не недостаток для ее основной аудитории: командная строка дает точность, повторяемость и удобную автоматизацию.

Для большинства задач достаточно команды:

oxipng -o 4 --strip safe --alpha *.png

Для папки проекта:

oxipng -r -o 4 --strip safe --alpha assets/

Для проверки без записи:

oxipng --dry-run -r -o 4 assets/

Для максимального сжатия отдельного файла:

oxipng -o max -z --strip safe image.png

Oxipng не заменяет редакторы изображений, универсальные конвертеры и lossy-компрессоры. Но если нужна именно оптимизация PNG без визуальной потери качества, программа выглядит одним из самых удобных и практичных вариантов: быстрая, многопоточная, понятная по параметрам и хорошо встраиваемая в реальные рабочие процессы.


Ваш адрес email не будет опубликован. Обязательные поля помечены *