OptiPNG: утилита для оптимизации PNG

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

Скачать OptiPNG

БесплатноОптимизацияWindows

Для сжатия и оптимизации файлов

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

Главная особенность OptiPNG — работа через командную строку. У программы нет классического окна с кнопками Open, Save, Export или панелью инструментов. Пользователь запускает файл optipng.exe в Windows или команду optipng в macOS и Linux, указывает путь к изображению и добавляет параметры обработки. Такой формат кажется непривычным, если раньше вы пользовались только программами с графическим интерфейсом, но именно он делает OptiPNG удобной для пакетной обработки, скриптов, сборки сайтов и автоматической оптимизации графики перед публикацией.

OptiPNG работает с PNG как с основным форматом, а также умеет создавать оптимизированные PNG из BMP, GIF, PNM и TIFF. Программа выполняет оптимизацию без потери смысловой информации, проверяет целостность файлов, умеет запускать восстановление проблемных изображений через -fix и поддерживает точную настройку алгоритмов сжатия через параметры -o, -f, -zc, -zm, -zs, -zw. Актуальная стабильная версия OptiPNG — 7.9.1.

Содержание

Что делает OptiPNG

OptiPNG уменьшает размер PNG-файла за счет более эффективной внутренней упаковки данных. Для пользователя это выглядит просто: был файл logo.png, после запуска команды он остался таким же визуально, но стал занимать меньше места. Программа не меняет разрешение изображения, не снижает качество как JPEG-компрессор, не размывает детали и не превращает картинку в другой формат, если пользователь явно не передает внешний BMP, GIF, PNM или TIFF для конвертации в PNG.

Внутри PNG есть сжатый поток изображения IDAT, палитра, служебные блоки, параметры фильтрации строк, информация о прозрачности и дополнительные метаданные. OptiPNG пытается найти более компактное представление этих данных. Она может уменьшить битовую глубину, тип цвета и палитру, если это не меняет само изображение, затем выполняет несколько попыток сжатия и выбирает лучший результат. Дополнительно программа объединяет содержимое IDAT в один блок, чтобы убрать лишние заголовки и CRC, а также подбирает размер zlib-окна, если пересоздается новый поток IDAT.

На практике OptiPNG особенно полезна для:

  • PNG-иконок сайта;

  • скриншотов интерфейса;

  • логотипов с прозрачным фоном;

  • UI-графики;

  • небольших иллюстраций;

  • PNG-экспорта из графических редакторов;

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

  • автоматической подготовки ассетов в проекте.

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

Интерфейс OptiPNG

Интерфейс OptiPNG — это командная строка. В Windows программа запускается через Command Prompt, PowerShell или Windows Terminal. В macOS — через Terminal. В Linux — через любой терминальный эмулятор, например GNOME Terminal, Konsole, Xfce Terminal или терминал внутри среды разработки.

У команды базовая структура такая:

optipng [options] [--] files...

На практике пользователь вводит:

optipng image.png

или более точную команду:

optipng -o5 -strip all image.png

В первой команде программа работает с настройками по умолчанию. Во второй задается уровень оптимизации -o5 и удаление метаданных -strip all.

Так как у OptiPNG нет отдельной панели настроек, все управление сосредоточено в параметрах командной строки. Это не недостаток, а особенность программы. Для разовой обработки одного файла GUI-инструмент может быть проще, но для повторяемого процесса командный интерфейс гораздо удобнее: одну и ту же команду можно сохранить в .bat, .sh, npm-скрипт, Makefile, задачу CI/CD или инструкцию для команды.

Справка OptiPNG в командной строке

Скриншот показывает типичный запуск OptiPNG в Windows: пользователь открывает командную строку, переходит в папку с программой и запускает optipng.exe. В выводе отображается синтаксис команды, поддерживаемые форматы и базовые параметры: -?, -h, -help, -o <level>, -v.

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

В Windows OptiPNG обычно используют как портативную консольную программу. Достаточно скачать архив сборки, распаковать его и запускать optipng.exe. Инсталлятора с мастером Next → Next → Finish у программы не требуется: исполняемый файл можно положить в отдельную папку, например:

C:Toolsoptipng

После распаковки есть два варианта работы.

Первый вариант — запускать optipng.exe из папки программы. Например, если OptiPNG лежит в C:Toolsoptipng, можно открыть Command Prompt, перейти в эту папку и выполнить:

cd C:Toolsoptipngoptipng.exe -h

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

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

optipng -version

или:

optipng -h

Если команда выводит справку, значит программа запускается корректно. Если Windows пишет, что optipng не является внутренней или внешней командой, папка с программой не добавлена в PATH, либо командная строка открыта не в той директории.

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

На macOS удобнее всего установить OptiPNG через Homebrew:

brew install optipng

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

optipng -version

или:

optipng -h

Homebrew распространяет OptiPNG как формулу optipng; текущая стабильная версия в формуле — 7.9.1. Формула описывает программу как PNG file optimizer и подтягивает необходимые зависимости для работы с PNG.

Для ежедневного использования на macOS команда ничем принципиально не отличается от Windows:

optipng ~/Pictures/example.png

Если нужно обработать все PNG в папке:

cd ~/Sites/project/assetsoptipng *.png

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

В Linux OptiPNG обычно ставится через пакетный менеджер дистрибутива. В Debian, Ubuntu и производных системах используется команда:

sudo apt install optipng

В Fedora:

sudo dnf install optipng

В Arch Linux:

sudo pacman -S optipng

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

optipng -version

или:

man optipng

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

Первый запуск OptiPNG

Первый запуск лучше начинать не с оптимизации реального файла, а со справки:

optipng -h

Команда выводит краткую справку: синтаксис, поддерживаемые форматы, основные параметры, уровни оптимизации и примеры использования. Расширенная справка вызывается похожими вариантами:

optipng -?optipng -help

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

optipng -version

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

optipng -v

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

На этом скриншоте видна расширенная справка OptiPNG: блок General options, параметры резервного копирования, вывода в отдельный файл, режима симуляции, а также настройки PNG-оптимизации -f, -i, -zc, -zm, -zs, -zw, -full, -nb, -nc, -np, -nx, -nz.

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

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

optipng image.png

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

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

copy image.png image-test.pngoptipng image-test.png

В macOS и Linux:

cp image.png image-test.pngoptipng image-test.png

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

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

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

Параметр -o задает уровень оптимизации. Он принимает значения от 0 до 7:

optipng -o0 image.pngoptipng -o1 image.pngoptipng -o2 image.pngoptipng -o5 image.pngoptipng -o7 image.png

Уровень -o0 выполняет минимальные операции. При нем OptiPNG не меняет такие характеристики изображения, как битовая глубина и тип цвета, и не пересжимает существующий поток IDAT. Это режим для быстрой и осторожной обработки.

Уровень -o1 выполняет одну попытку IDAT-сжатия. OptiPNG выбирает вариант, который считает наиболее перспективным. Это быстрый режим для случаев, когда нужно обработать много файлов и не тратить лишнее время.

Уровни -o2 и выше запускают несколько попыток сжатия. Чем выше уровень, тем больше вариантов проверяет программа. На -o5 обработка обычно медленнее, но результат может быть лучше. На -o7 программа делает особенно тщательный подбор, но прирост по сравнению с -o5 не всегда заметен. Максимальные режимы имеют смысл для небольшого количества важных изображений: логотипов, иконок, графики интерфейса, файлов шаблона сайта.

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

optipng -o2 image.png

или:

optipng -o5 image.png

Для финальной подготовки набора PNG перед публикацией можно использовать:

optipng -o5 *.png

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

optipng -o7 logo.png

Важная практическая деталь: не стоит автоматически использовать -o7 для тысяч изображений. На больших папках разница во времени может быть существенной, а выигрыш в размере часто оказывается небольшим. Уровень -o5 обычно выглядит разумным компромиссом между временем обработки и итоговым размером файла.

Пример командной строки OptiPNG в Windows

На скриншоте показан вывод справки OptiPNG в cmd.exe: видны параметры -backup, -fix, -force, -preserve, -quiet, -simulate, -out, -dir, а также блок настроек сжатия. Это именно тот интерфейс, с которым пользователь работает в OptiPNG.

Резервные копии и безопасная обработка файлов

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

Параметр -backup сохраняет резервную копию измененного файла:

optipng -backup image.png

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

Параметр -out записывает результат в отдельный файл:

optipng -out optimized.png image.png

Здесь image.png остается исходником, а оптимизированный результат сохраняется как optimized.png. У этого параметра есть важное ограничение: в командной строке должен быть ровно один входной файл. Нельзя написать optipng -out optimized.png *.png, потому что программа не сможет сложить несколько разных PNG в один выходной файл.

Параметр -dir сохраняет выходные файлы в отдельную папку:

optipng -dir optimized image.png

или для группы файлов:

optipng -dir optimized *.png

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

Параметр -preserve сохраняет атрибуты файла, где это возможно:

optipng -preserve image.png

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

Пакетная обработка PNG

OptiPNG хорошо подходит для пакетной обработки. Можно передать несколько файлов одной командой:

optipng image1.png image2.png image3.png

Можно использовать маску:

optipng *.png

Можно сразу задать уровень оптимизации:

optipng -o5 *.png

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

cd assets/imagesoptipng -o5 -strip all *.png

Эта команда обрабатывает все PNG в текущей папке, использует уровень оптимизации -o5 и удаляет метаданные через -strip all.

В Windows PowerShell удобно использовать Get-ChildItem:

Get-ChildItem *.png | ForEach-Object { optipng -o5 $_.FullName }

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

Get-ChildItem -Recurse -Filter *.png | ForEach-Object { optipng -o5 $_.FullName }

В Linux и macOS можно использовать find:

find ./images -name "*.png" -exec optipng -o5 {} ;

Если нужно убрать метаданные:

find ./images -name "*.png" -exec optipng -o5 -strip all {} ;

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

mkdir test-optimizedcp images/*.png test-optimized/cd test-optimizedoptipng -o5 -strip all *.png

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

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

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

В OptiPNG для этого используется:

optipng -strip all image.png

Параметр -strip работает с объектами метаданных PNG. Поддерживаемый вариант — -strip all. При этом tRNS не считается обычными метаданными для удаления, потому что он отвечает за прозрачность как часть изображения. Это важно для логотипов, иконок и UI-графики с прозрачным фоном: удаление метаданных не должно превращать прозрачность в белый или черный фон.

Для сайта часто используют команду:

optipng -o5 -strip all image.png

Для группы файлов:

optipng -o5 -strip all *.png

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

Проверка и восстановление проблемных PNG через -fix

OptiPNG умеет не только сжимать PNG, но и выполнять проверку целостности. Если файл поврежден, программа может попытаться восстановить данные через параметр -fix:

optipng -fix broken.png

Этот режим не нужен для обычных корректных изображений. Он включается, когда PNG читается с ошибками, не открывается в некоторых просмотрщиках или вызывает проблемы при обработке. При -fix OptiPNG пытается восстановить как можно больше данных. Если для восстановления критически важной структуры потребуется увеличить файл, программа может пойти на это, потому что в этом режиме целостность важнее минимального размера.

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

optipng -fix -backup broken.png

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

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

Конвертация BMP, GIF, PNM и TIFF в PNG

OptiPNG может принимать на вход не только PNG, но и внешние растровые форматы: BMP, GIF, PNM и TIFF. В этом случае программа создает оптимизированную PNG-версию файла.

Пример для BMP:

optipng image.bmp

На выходе создается файл:

image.png

Пример для GIF:

optipng banner.gif

Пример для TIFF:

optipng scan.tiff

Это не универсальный конвертер изображений уровня ImageMagick. OptiPNG не предназначен для сложной обработки многостраничных TIFF, цветовых преобразований, ресайза или изменения разрешения. Его задача — получить PNG и сразу применить оптимизацию. Для TIFF есть ограничение: поддерживаются несжатые PNG-совместимые изображения в оттенках серого, RGB и RGBA. Метаданные из внешних форматов в PNG не импортируются.

Для простого сценария есть BMP-иконка, нужно сделать компактный PNG, OptiPNG подходит хорошо:

optipng -o5 icon.bmp

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

optipng -o5 -dir png icon.bmp

Режим симуляции -simulate

Параметр -simulate выполняет пробные операции, но не создает выходные файлы:

optipng -simulate image.png

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

optipng -simulate -o5 -strip all *.png

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

Для более подробного вывода можно добавить -verbose:

optipng -simulate -verbose image.png

Для тихого режима без лишних сообщений используется:

optipng -quiet image.png

или:

optipng -silent image.png

-quiet удобен в скриптах, где нужно снизить объем логов. -verbose, наоборот, нужен при разборе поведения программы, сравнении параметров и диагностике.

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

Настройка PNG-фильтров через -f

PNG использует фильтры строк перед сжатием. Эти фильтры помогают сделать данные более удобными для zlib-компрессии. В OptiPNG фильтры задаются параметром -f.

Пример:

optipng -f0-5 image.png

Значения фильтров:

Значение Фильтр PNG Смысл
0 None без фильтрации
1 Left предсказание по левому пикселю
2 Up предсказание по пикселю сверху
3 Average среднее по левому и верхнему
4 Paeth Paeth-предсказатель
5 Adaptive адаптивная фильтрация через libpng

Обычно пользователю не нужно вручную указывать -f: OptiPNG сам выбирает набор фильтров в зависимости от уровня -o. Но для продвинутой настройки можно ограничить или расширить поиск.

Например:

optipng -o5 -f0-5 image.png

или:

optipng -o5 -f0,3-5 image.png

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

optipng -f0,3-5 image.pngoptipng -f 0,3-5 image.pngoptipng -f=0,3-5 image.png

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

Настройки zlib: -zc, -zm, -zs, -zw

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

Параметр -zc задает уровни zlib compression:

optipng -zc6-9 image.png

Параметр -zm задает memory level:

optipng -zm8-9 image.png

Параметр -zs задает стратегии сжатия:

optipng -zs0-3 image.png

Параметр -zw задает размер zlib-окна:

optipng -zw32k image.png

Можно объединять настройки:

optipng -o5 -zc6-9 -zm8-9 -zs0-3 image.png

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

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

optipng -o2 image.pngoptipng -o5 image.pngoptipng -o7 image.png

Затем сравнить размер и время. Если разница между -o5 и -o7 минимальна, для пакетной обработки лучше оставить -o5.

Параметры, которые запрещают отдельные виды уменьшения

OptiPNG может выполнять lossless image reductions: уменьшать битовую глубину, тип цвета и палитру, если это не меняет изображение. Иногда такие операции нужно отключить. Для этого есть параметры -nb, -nc, -np, -nx.

-nb запрещает уменьшение битовой глубины:

optipng -nb image.png

-nc запрещает уменьшение типа цвета:

optipng -nc image.png

-np запрещает уменьшение палитры:

optipng -np image.png

-nx отключает все lossless image reductions сразу:

optipng -nx image.png

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

Есть еще параметр -nz:

optipng -nz image.png

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

Interlace и параметр -i

Параметр -i задает тип interlace:

optipng -i0 image.pngoptipng -i1 image.png

-i0 делает PNG non-interlaced, то есть без прогрессивной развертки.

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

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

Для веб-иконок, логотипов и UI-графики чаще используют обычный non-interlaced PNG:

optipng -i0 -o5 image.png

Работа с многоизображениями, анимацией и -snip

Параметр -snip нужен для извлечения одного изображения из multi-image, animation или video files:

optipng -snip file.gif

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

Если задача — обработка анимированного GIF как анимации, OptiPNG не является подходящим инструментом. Для этого нужны специализированные программы. OptiPNG в этом сценарии интересен именно как инструмент получения PNG-версии отдельного изображения.

Практическая инструкция: как сжать PNG для сайта

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

Сначала сложите PNG в отдельную папку, например:

project/  assets/    png-source/      logo.png      icon-search.png      icon-user.png      banner.png

Создайте папку для оптимизированных файлов:

mkdir png-optimized

Скопируйте туда исходники:

cp png-source/*.png png-optimized/

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

cd png-optimized

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

optipng -o5 -strip all *.png

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

ls -lh

В Windows PowerShell:

Get-ChildItem *.png | Select-Object Name, Length

Затем откройте оптимизированные изображения в просмотрщике или браузере. Нужно проверить:

  • сохранилась ли прозрачность;

  • не изменились ли цвета;

  • корректно ли выглядит логотип;

  • не пропали ли элементы интерфейса;

  • не появились ли артефакты;

  • совпадает ли разрешение.

Так как OptiPNG выполняет lossless-оптимизацию, визуальное содержимое должно остаться прежним. Но проверка нужна всегда, особенно если вместе с оптимизацией используется -strip all, а изображения участвуют в верстке, где важны прозрачность и цветовое поведение.

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

optipng -backup -o5 -strip all *.png

Если нужно не трогать исходную папку:

optipng -o5 -strip all -dir ../png-optimized ../png-source/*.png

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

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

Создайте копии:

cp logo.png logo-o2.pngcp logo.png logo-o5.pngcp logo.png logo-o7.png

Запустите разные уровни:

optipng -o2 logo-o2.pngoptipng -o5 logo-o5.pngoptipng -o7 logo-o7.png

Сравните размер:

ls -lh logo*.png

Если нужна версия без метаданных:

cp logo.png logo-web.pngoptipng -o5 -strip all logo-web.png

После этого откройте logo.png и logo-web.png рядом. Визуально они должны совпадать. Если логотип используется на сайте, проверьте его на темном и светлом фоне, потому что ошибки прозрачности заметны именно там.

Для финального файла обычно достаточно:

optipng -o5 -strip all logo.png

Если выигрыш от -o7 заметен и файл важен, можно использовать:

optipng -o7 -strip all logo.png

Практическая инструкция: как обработать папку скриншотов

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

Для папки screenshots:

cd screenshotsoptipng -o5 *.png

Если скриншоты идут в статью или документацию, можно убрать метаданные:

optipng -o5 -strip all *.png

Если нужно сохранить исходники:

optipng -backup -o5 -strip all *.png

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

find ./docs -name "*.png" -exec optipng -o5 -strip all {} ;

Скриншоты после OptiPNG остаются PNG-файлами, поэтому их можно сразу вставлять в Markdown:

![Настройки программы](images/settings.png)

или использовать на сайте:

<img src="/images/settings.png" alt="Настройки программы">

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

Практическая инструкция: OptiPNG в скрипте сборки

OptiPNG удобно использовать в автоматической сборке проекта. Например, есть папка:

src/images/

и папка для готовых ассетов:

dist/images/

Простой shell-скрипт:

#!/bin/shmkdir -p dist/imagescp src/images/*.png dist/images/optipng -o5 -strip all dist/images/*.png

Такой сценарий подходит для статического сайта, документации, шаблона, темы CMS или небольшого frontend-проекта. Команда копирует PNG в выходную папку и оптимизирует уже копии, не трогая исходники.

Для npm-скрипта можно добавить команду в package.json:

{  "scripts": {    "optimize:png": "optipng -o5 -strip all public/images/*.png"  }}

После этого запуск:

npm run optimize:png

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

Что показывает вывод OptiPNG

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

  • имя входного файла;

  • формат и параметры изображения;

  • выбранные методы;

  • количество выполненных trials;

  • информация о IDAT;

  • исходный размер;

  • итоговый размер;

  • процент экономии;

  • сообщение о том, что файл уже оптимален;

  • предупреждения или ошибки.

Если программа пишет, что файл не был изменен, это не значит, что команда не сработала. Возможны разные причины:

  • PNG уже оптимизирован;

  • выбранный уровень не нашел лучшего результата;

  • файл содержит структуру, которую программа не стала перезаписывать без -force;

  • выходной файл оказался бы больше;

  • файл поврежден и нужен -fix;

  • команда запущена без прав записи в папку.

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

optipng -verbose image.png

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

optipng -simulate -verbose image.png

Для вывода полной информации по IDAT:

optipng -full image.png

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

Основные параметры OptiPNG

Параметр Назначение Пример
-?, -h, -help показать справку optipng -h
-version показать версию и сведения о сборке optipng -version
-v включить -verbose и -version optipng -v image.png
-o level выбрать уровень оптимизации optipng -o5 image.png
-backup сохранить резервную копию измененного файла optipng -backup image.png
-keep синоним резервного копирования optipng -keep image.png
-out file записать результат в отдельный файл optipng -out new.png old.png
-dir directory записать результат в папку optipng -dir out image.png
-preserve сохранить атрибуты файла optipng -preserve image.png
-quiet, -silent тихий режим optipng -quiet image.png
-verbose подробный вывод optipng -verbose image.png
-simulate выполнить пробные операции без записи optipng -simulate image.png
-fix попытаться восстановить поврежденный файл optipng -fix broken.png
-force принудительно записать новый выходной файл optipng -force image.png
-strip all удалить метаданные PNG optipng -strip all image.png
-f filters задать PNG-фильтры optipng -f0-5 image.png
-zc levels задать уровни zlib-сжатия optipng -zc6-9 image.png
-zm levels задать zlib memory levels optipng -zm8-9 image.png
-zs strategies задать zlib strategies optipng -zs0-3 image.png
-zw size задать размер zlib window optipng -zw32k image.png
-i type задать interlace type optipng -i0 image.png
-nb не уменьшать bit depth optipng -nb image.png
-nc не уменьшать color type optipng -nc image.png
-np не уменьшать palette optipng -np image.png
-nx отключить все lossless reductions optipng -nx image.png
-nz не пересоздавать IDAT datastreams optipng -nz image.png
-- остановить разбор параметров optipng -- -file.png

Что OptiPNG делает особенно хорошо

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

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

Вторая сильная сторона — автоматизация. Командная строка легко встраивается в любые процессы: от локального .bat-файла до серверной сборки. Если на сайте сотни PNG-иконок, вручную перетаскивать их в GUI-программу неудобно. Команда optipng -o5 -strip all *.png решает задачу быстрее и повторяемо.

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

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

Ограничения OptiPNG

Главное ограничение OptiPNG — отсутствие графического интерфейса. Для опытного пользователя это плюс, но новичку придется разобраться с командной строкой, путями к файлам, кавычками в названиях и параметрами.

Второе ограничение — узкая специализация. OptiPNG не оптимизирует JPEG, WebP, AVIF, SVG, PDF и другие форматы. Если в проекте смешаны PNG, JPEG, SVG и WebP, одной OptiPNG будет мало. Для PNG она хороша, но для всего набора изображений может понадобиться связка инструментов.

Третье ограничение — отсутствие ресайза. Программа не уменьшает изображение с 3000×2000 до 1200×800. Если файл слишком большой по разрешению, OptiPNG не решит эту проблему. Сначала нужно изменить размер в редакторе, ImageMagick, графическом конвертере или другом инструменте, а затем оптимизировать PNG.

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

Пятое ограничение — не все внутренние преобразования реализованы полностью. У программы есть ограничения по некоторым lossless reductions, большим IDAT, TIFF, метаданным внешних форматов, потокам, extended file attributes и ACL. Для обычной оптимизации веб-графики это редко мешает, но для нестандартных производственных процессов такие детали важны.

Типичные ошибки при работе с OptiPNG

Частая ошибка — ожидать графическое окно. Пользователь запускает optipng.exe, видит черное окно, которое быстро закрывается, и считает, что программа не работает. На самом деле OptiPNG нужно запускать из командной строки, а не двойным щелчком как обычный редактор. Двойной щелчок по optipng.exe не дает нормального рабочего процесса.

Вторая ошибка — запуск команды не из той папки. Например, файл лежит в C:UsersUserPictures, а командная строка открыта в C:WindowsSystem32. Тогда команда:

optipng image.png

не найдет файл. Нужно либо перейти в нужную папку:

cd C:UsersUserPicturesoptipng image.png

либо указать полный путь:

optipng "C:UsersUserPicturesimage.png"

Третья ошибка — забывать кавычки в путях с пробелами:

optipng C:My Imageslogo.png

Правильно:

optipng "C:My Imageslogo.png"

Четвертая ошибка — запускать -strip all на единственном исходнике, где важны метаданные. Для веб-версии это часто нормально, но для архива исходников лучше использовать копию.

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

Шестая ошибка — ставить -o7 для огромной папки и ждать моментального результата. Максимальный уровень может работать заметно дольше. Для массовой обработки рациональнее начинать с -o2 или -o5.

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

Для простой оптимизации:

optipng image.png

Для хорошего баланса размера и скорости:

optipng -o5 image.png

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

optipng -o7 image.png

Для веб-графики с удалением метаданных:

optipng -o5 -strip all image.png

Для всех PNG в папке:

optipng -o5 -strip all *.png

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

optipng -backup -o5 image.png

Для отдельного выходного файла:

optipng -out image-optimized.png image.png

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

optipng -dir optimized *.png

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

optipng -simulate -o5 image.png

Для подробного вывода:

optipng -verbose -o5 image.png

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

optipng -fix -backup broken.png

Для отключения lossless reductions:

optipng -nx image.png

Для сохранения атрибутов файла:

optipng -preserve image.png

Пример рабочего процесса для веб-разработчика

Веб-разработчик получает от дизайнера папку с PNG-иконками:

icons/  menu.png  close.png  search.png  user.png  cart.png

Сначала он делает копию:

cp -r icons icons-optimized

Переходит в копию:

cd icons-optimized

Запускает OptiPNG:

optipng -o5 -strip all *.png

Проверяет результат:

ls -lh

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

Если проект использует Git, лучше оптимизировать изображения до коммита, чтобы в репозиторий не попадали лишние килобайты. OptiPNG можно добавить в pre-commit hook, но только если команда работает достаточно быстро и не мешает разработке. Для больших папок лучше запускать оптимизацию отдельной командой перед релизом.

Пример рабочего процесса для автора статей и документации

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

optipng -o5 screenshots/*.png

Если скриншоты не содержат важной служебной информации:

optipng -o5 -strip all screenshots/*.png

После этого файлы вставляются в Markdown:

![Окно настроек программы](screenshots/settings.png)

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

Пример рабочего процесса для администратора сайта

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

Правильнее сделать тестовую копию:

rsync -a uploads/ uploads-test/find uploads-test -name "*.png" -exec optipng -o5 -strip all {} ;

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

du -sh uploads uploads-test

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

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

find incoming-png -name "*.png" -exec optipng -o5 -strip all {} ;

После обработки файлы переносятся в основную директорию сайта.

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

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

OptiPNG и pngcrush

pngcrush — один из ближайших аналогов OptiPNG. Это тоже консольный оптимизатор PNG. Его основная задача — уменьшать размер IDAT-потока, пробуя разные уровни сжатия и методы PNG-фильтрации. Также pngcrush умеет работать с ancillary chunks: удалять или добавлять отдельные служебные блоки, включая gAMA, tRNS, iCCP и текстовые chunks.

OptiPNG в повседневной работе проще. Команда:

optipng -o5 image.png

понятна и коротка. У pngcrush часто нужно точнее задавать входной и выходной файл:

pngcrush in.png out.png

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

OptiPNG и pngquant

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

Если нужно сохранить изображение без потери качества, выбирают OptiPNG:

optipng -o5 image.png

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

pngquant --quality=65-80 image.png

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

OptiPNG и Oxipng

Oxipng — современный PNG/APNG-оптимизатор, написанный на Rust. Он работает через командную строку, поддерживает многопоточность и позиционируется как быстрый lossless PNG/APNG compression optimizer. Типичная команда для веб-графики выглядит так:

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

Oxipng интересен там, где важна скорость на многоядерных системах и обработка больших наборов PNG. OptiPNG, в свою очередь, остается классическим и понятным инструментом с хорошо известными параметрами -o, -strip all, -backup, -out, -dir.

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

OptiPNG и ImageOptim

ImageOptim — популярная macOS-программа с графическим интерфейсом. Она объединяет несколько оптимизаторов и позволяет просто перетащить изображения в окно приложения. По умолчанию ImageOptim аккуратно сохраняет качество, но при включении lossy-режимов может применять более агрессивные методы для JPEG, SVG, анимированных GIF и PNG.

OptiPNG удобнее для командной строки и автоматизации. ImageOptim удобнее для ручной работы на Mac. Если дизайнеру нужно быстро перетащить несколько файлов мышью, ImageOptim проще. Если разработчику нужно встроить сжатие PNG в сборку, OptiPNG подходит лучше.

Разница хорошо видна по интерфейсу:

Задача OptiPNG ImageOptim
Оптимизация PNG без GUI да нет, основной сценарий через окно
Drag-and-drop нет как основной интерфейс да
Автоматизация в скриптах удобно не основной сценарий
Поддержка нескольких форматов ограниченно шире
Точная настройка PNG-параметров сильная сторона скрыта за интерфейсом
Подходит для macOS-пользователя без терминала хуже лучше

OptiPNG и FileOptimizer

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

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

Для Windows-пользователя выбор зависит от сценария:

  • нужен GUI и много форматов — FileOptimizer;

  • нужна командная строка и точный контроль PNG — OptiPNG;

  • нужно быстро обработать PNG в скрипте — OptiPNG;

  • нужно оптимизировать разнородную папку документов и изображений — FileOptimizer.

OptiPNG и Trimage

Trimage — графический и командный оптимизатор изображений для сайтов. Он использует optipng, pngcrush, advpng и jpegoptim в зависимости от типа файла; поддерживает PNG и JPG, выполняет lossless-компрессию и удаляет EXIF/metadata.

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

Если нужен контроль над параметрами -o, -strip, -backup, -out, лучше запускать OptiPNG напрямую. Если нужен простой графический интерфейс для нескольких изображений, Trimage может быть удобнее.

OptiPNG и TinyPNG

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

OptiPNG работает локально. Это важное отличие. Файл не покидает компьютер или сервер. Кроме того, OptiPNG можно запускать в скриптах, без браузера и ручной загрузки. TinyPNG удобнее для разовой ручной обработки, OptiPNG — для контролируемой локальной оптимизации.

Сравнительная таблица

Программа Интерфейс Основной подход Форматы Где удобнее
OptiPNG командная строка lossless PNG optimization PNG, входные BMP/GIF/PNM/TIFF в PNG скрипты, сайты, разработка
pngcrush командная строка lossless PNG optimization и работа с chunks PNG тонкая работа с PNG-структурой
pngquant командная строка lossy PNG compression через палитру PNG сильное уменьшение размера при допустимых изменениях
Oxipng командная строка многопоточная lossless PNG/APNG optimization PNG/APNG быстрая пакетная обработка
ImageOptim GUI macOS объединение оптимизаторов JPEG, PNG, GIF, SVG и др. ручная работа на Mac
FileOptimizer GUI Windows lossless-оптимизация разных файлов много форматов универсальная оптимизация на Windows
Trimage GUI и CLI оболочка для нескольких оптимизаторов PNG, JPG Linux-пользователи, сайты
TinyPNG онлайн агрессивное уменьшение через сервис PNG, JPEG, WebP быстрая ручная онлайн-обработка

Кому подойдет OptiPNG

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

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

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

Программа подойдет разработчикам, которые хотят встроить PNG optimization в сборку. Команда легко добавляется в shell-скрипт, npm script, Makefile или CI/CD.

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

Кому OptiPNG не подойдет

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

OptiPNG не подойдет тем, кто хочет визуальный интерфейс с предпросмотром. Здесь нет окна до/после, ползунка качества, миниатюр и панели экспорта.

OptiPNG не подойдет для JPEG-оптимизации. Для JPEG нужны jpegoptim, mozjpeg, ImageOptim, FileOptimizer или другие инструменты.

OptiPNG не подойдет для конвертации в WebP или AVIF. Это другая задача, которую решают cwebp, avifenc, Squoosh, ImageMagick и специализированные конвертеры.

OptiPNG не подойдет для сильного уменьшения PNG ценой небольшой потери качества. Для такого сценария лучше смотреть в сторону pngquant или онлайн-сервисов с lossy-компрессией.

Практические рекомендации по выбору параметров

Для большинства случаев начните с:

optipng -o5 image.png

Для сайта:

optipng -o5 -strip all image.png

Для папки сайта:

optipng -o5 -strip all *.png

Для первого теста:

optipng -simulate -o5 image.png

Для безопасной обработки:

optipng -backup -o5 image.png

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

optipng -o2 image.png

Для технических PNG, где нельзя менять внутреннее представление:

optipng -nx image.png

Для отдельного результата без изменения исходника:

optipng -out optimized.png image.png

Для массовой обработки лучше не начинать с -o7. Сначала стоит проверить -o2 и -o5, сравнить размер и время. Если -o7 дает заметный выигрыш на конкретном наборе файлов, его можно применять точечно.

Итоговая оценка OptiPNG

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

Главный плюс программы — надежность в узкой задаче. Команда:

optipng -o5 -strip all *.png

закрывает типичный сценарий подготовки PNG для сайта. Команда:

optipng -backup -o5 image.png

позволяет работать безопасно. Команда:

optipng -simulate -verbose image.png

помогает проверить поведение без перезаписи файла.

OptiPNG особенно хорош для веб-разработчиков, технических авторов, администраторов сайтов и всех, кто хочет локально оптимизировать PNG через командную строку. Его слабые стороны очевидны: нет GUI, нет редактирования, нет JPEG/WebP/AVIF, нет ресайза. Но эти ограничения не мешают программе быть полезной именно в своей нише.

Если нужен универсальный графический оптимизатор, лучше выбрать ImageOptim, FileOptimizer или Trimage. Если нужно сильное уменьшение размера PNG с допустимой потерей точности, стоит рассмотреть pngquant. Если нужна быстрая многопоточная обработка PNG/APNG, интересен Oxipng. Но если задача формулируется как уменьшить PNG без потери качества, локально, предсказуемо и через командную строку, OptiPNG остается одним из самых практичных вариантов.


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