OptiPNG - скачать полную версию бесплатно на русском

OptiPNG: оптимизация PNG-файлов

OptiPNG: оптимизация PNG-файлов

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

Выбор редакции

Скачать OptiPNG бесплатно

Рекомендуем

ФотоМАСТЕР

  • Простой интерфейс
  • Ретушь и замена фона
  • Фильтры и автокоррекция
  • Быстрая обработка фото

OptiPNG

  • Сложнее простых редакторов
  • Может быть избыточна для быстрых правок
  • Нужно время на освоение
  • Не все функции нужны новичку

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

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

OptiPNG часто используют для:

  • уменьшения веса PNG-скриншотов;

  • подготовки изображений для сайта;

  • оптимизации интерфейсных ассетов;

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

  • локального сжатия без загрузки файлов в онлайн-сервис;

  • автоматизации в скриптах сборки;

  • проверки поврежденных PNG;

  • удаления лишних метаданных из PNG;

  • конвертации отдельных BMP, GIF, PNM и TIFF в PNG.

При этом программа не заменяет Photoshop, GIMP, Squoosh, TinyPNG или ImageOptim. Ее сильная сторона — не визуальное редактирование, а точная, повторяемая, автоматизируемая оптимизация PNG через командную строку.

Для чего нужна программа

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

В веб-разработке это особенно полезно. PNG часто используют для:

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

  • иконок;

  • схем;

  • пиксельной графики;

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

  • логотипов;

  • иллюстраций с резкими границами;

  • элементов, где JPEG дает заметные артефакты.

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

Для редакторов и авторов инструкций программа полезна при подготовке изображений к публикации. Например, есть папка со скриншотами: step-1.png, step-2.png, step-3.png. Их можно прогнать через OptiPNG, получить меньший вес и не переживать, что текст на скриншотах станет размытым. Это принципиальное отличие от lossy-компрессоров, где уменьшение размера достигается за счет изменения данных изображения.

Для разработчиков OptiPNG удобен тем, что программа работает предсказуемо в CLI. Ее можно встроить в Makefile, npm script, shell-скрипт, PowerShell-сценарий или CI-процесс. В таком сценарии OptiPNG становится частью технической рутины: изображения оптимизируются перед релизом, перед сборкой документации или перед публикацией статического сайта.

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

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

OptiPNG — это небольшая, бесплатная и открытая программа командной строки, написанная для работы с PNG. Ее пользовательский интерфейс — не окно, а команда optipng с набором параметров. В этом смысле программа ближе к ffmpeg, jpegoptim, pngcrush и другим техническим CLI-инструментам, чем к привычным графическим приложениям.

Ключевые характеристики:

Характеристика Описание
Тип программы Консольный оптимизатор PNG
Основная задача Сжатие PNG без потери информации
Основной формат PNG
Дополнительные входные форматы BMP, GIF, PNM, TIFF
Интерфейс Командная строка
Графическое окно Нет
Пакетная обработка Да, через список файлов, маски и shell-команды
Работа на месте Да, PNG может быть заменен оптимизированной версией
Вывод в отдельный файл Да, через -out
Вывод в отдельную папку Да, через -dir
Резервные копии Да, через -keep или -backup
Проверка без записи Да, через -simulate
Исправление ошибок Да, через -fix
Удаление метаданных Да, через -strip all
Лицензия Zlib

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

Главное отличие от графических программ — отсутствие визуального слоя. В OptiPNG нет кнопок Open, Save, Compress, Export или Preview. Вместо них используются команды:

optipng image.png
optipng -o5 image.png
optipng -out result.png source.png
optipng -dir optimized *.png
optipng -strip all image.png

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

Интерфейс и логика работы

У OptiPNG нет классического графического интерфейса. Вся работа идет через терминал: Command Prompt, PowerShell, Terminal в macOS, shell в Linux или любую другую командную оболочку. Пользователь вводит команду, программа выводит текстовый отчет, после чего исходный PNG либо заменяется оптимизированным вариантом, либо остается без изменений, либо результат сохраняется в отдельный файл или папку.

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

  • -h, -help, -? — показать справку;

  • -o <level> — выбрать уровень оптимизации;

  • -v — включить режим с версией и подробным выводом;

  • -quiet, -silent — уменьшить количество сообщений;

  • -backup, -keep — сохранить резервную копию измененного файла;

  • -clobber — разрешить перезапись существующих выходных файлов;

  • -fix — включить восстановление поврежденных входных файлов;

  • -force — принудительно записать новый результат;

  • -preserve — сохранить атрибуты файла;

  • -simulate — выполнить пробные операции без записи результата;

  • -out <file> — записать результат в конкретный файл;

  • -dir <directory> — записать результат в папку;

  • -strip all — удалить метаданные PNG;

  • -f <filters> — выбрать PNG delta filters;

  • -i <type> — выбрать interlace type;

  • -zc, -zm, -zs, -zw — тонко настроить параметры zlib.

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

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

optipng [options...] files...

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

Подготовка к работе в Windows, macOS и Linux

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

optipng -h

или:

optipng -version

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

На macOS и Linux логика такая же: пользователь работает в терминале, переходит в папку с изображениями и запускает команду. OptiPNG не требует отдельного проекта, библиотеки изображений или импорта файлов в интерфейс. Файл можно оптимизировать прямо там, где он лежит.

Пример проверки:

optipng -h

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

В Windows часто удобнее работать через PowerShell:

optipng .image.png

В Linux и macOS чаще используют обычный shell:

optipng ./image.png

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

Как сжать один PNG-файл

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

optipng image.png

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

Пример рабочего процесса:

  1. Открыть терминал.

  2. Перейти в папку с PNG.

  3. Выполнить команду optipng image.png.

  4. Проверить размер файла после обработки.

  5. При необходимости повторить с другим уровнем оптимизации.

Команда:

cd images
optipng screenshot.png

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

optipng "main screen.png"

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

optipng ../screenshots/panel.png

Для абсолютного пути на Windows:

optipng "C:Projectssitepublicimageslogo.png"

Для абсолютного пути на Linux или macOS:

optipng "/home/user/project/public/images/logo.png"

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

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

Один из главных параметров OptiPNG — ключ -o. Он задает уровень оптимизации:

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

Уровень -o0 включает минимальные операции. Он не меняет такие атрибуты изображения, как bit depth и color type, и не выполняет повторное сжатие существующих IDAT-потоков. Это самый осторожный режим, когда нужно выполнить базовую техническую оптимизацию с минимальным вмешательством.

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

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

На практике уровни можно понимать так:

Уровень Практический смысл Когда использовать
-o0 Минимальная оптимизация Осторожная обработка, проверка, быстрый проход
-o1 Быстрая проба сжатия Большие папки, регулярная автоматизация
-o2 Баланс скорости и результата Повседневная оптимизация PNG
-o3 / -o4 Более тщательный подбор Публикация сайта, подготовка ассетов
-o5 Медленный режим Финальная оптимизация важных PNG
-o6 / -o7 Очень тщательный перебор Небольшие наборы файлов, где важен каждый килобайт

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

optipng -o2 *.png

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

optipng -o5 *.png

Пример для максимальной обработки небольшого набора файлов:

optipng -o7 logo.png icons/*.png

Высокий уровень не гарантирует драматическую экономию. У хорошо подготовленного PNG запас для оптимизации может быть минимальным. Кроме того, слишком долгий перебор не всегда дает заметный выигрыш. Для автоматической обработки больших папок разумнее начинать с -o2 или -o3, а -o7 оставлять для ситуаций, где время не критично.

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

По умолчанию OptiPNG может заменить исходный PNG оптимизированной версией. Если нужно сохранить исходник нетронутым и получить отдельный результат, используется ключ -out:

optipng -out optimized.png original.png

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

Практический пример:

optipng -o5 -out banner.optimized.png banner.png

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

ls -lh banner.png banner.optimized.png

На Windows в PowerShell:

Get-Item .banner.png, .banner.optimized.png

-out особенно полезен в трех случаях:

  • нужно сохранить оригинал без .bak;

  • нужно вручную сравнить размер файлов;

  • нужно проверить результат перед заменой исходника.

При работе с одним важным изображением это самый понятный безопасный вариант. При обработке целой папки удобнее использовать -dir.

Вывод результата в отдельную папку

Ключ -dir записывает выходные файлы в указанную папку:

optipng -dir optimized *.png

В этом сценарии исходные PNG остаются в текущей папке, а оптимизированные версии создаются в optimized. Это удобно для пакетной обработки и для подготовки публикационного набора изображений.

Пример структуры до обработки:

images/
  logo.png
  header.png
  screenshot-1.png
  screenshot-2.png

Команда:

optipng -o3 -dir optimized *.png

Результат:

images/
  logo.png
  header.png
  screenshot-1.png
  screenshot-2.png
  optimized/
    logo.png
    header.png
    screenshot-1.png
    screenshot-2.png

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

optipng -o3 -dir optimized -clobber *.png

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

Пакетная оптимизация PNG

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

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

optipng *.png

Команда передает программе все PNG-файлы, которые оболочка нашла по маске *.png.

С выбранным уровнем:

optipng -o3 *.png

С сохранением резервных копий:

optipng -o3 -keep *.png

С выводом в отдельную папку:

optipng -o3 -dir optimized *.png

В PowerShell можно использовать перебор файлов:

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

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

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

В Linux и macOS рекурсивная обработка часто делается через find:

find . -name "*.png" -type f -exec optipng -o3 {} ;

Более быстрый вариант с передачей нескольких файлов через xargs:

find . -name "*.png" -type f -print0 | xargs -0 optipng -o3

На таком выводе видно, что OptiPNG не просто сохраняет файл заново. Он перебирает параметры, показывает выбранные значения и сообщает итоговый размер. В отчете могут отображаться строки Selecting parameters, размеры IDAT, исходный размер и выходной размер. Для технического пользователя это полезнее, чем абстрактная надпись готово: можно понять, была ли экономия и за счет чего файл изменился.

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

  1. Сначала сделать копию папки или работать через -dir.

  2. Проверить команду на нескольких PNG.

  3. Запустить -simulate, если нужно оценить поведение без записи.

  4. После успешной проверки выполнить обработку всей папки.

  5. Проверить размер и открыть несколько итоговых файлов.

  6. Только после этого заменять изображения в проекте.

Пример безопасной схемы:

mkdir optimized
optipng -o3 -dir optimized *.png

Пример более агрессивной схемы:

optipng -o7 -strip all -preserve *.png

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

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

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

optipng -keep image.png
optipng -backup image.png

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

Пример:

optipng -o3 -keep screenshot.png

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

Ключ -clobber разрешает перезаписывать существующие выходные и резервные файлы:

optipng -clobber -out result.png source.png

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

Ключ -force принудительно требует записи нового выходного файла:

optipng -force image.png

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

Практическое правило:

Задача Лучше использовать
Первый запуск на важной папке -dir или -keep
Сравнение одного файла -out
Повторная генерация папки результата -dir с аккуратным управлением папкой
Автоматизация в сборке -o2 / -o3, иногда -preserve
Агрессивная перезапись Только осознанно через -clobber
Принудительная запись Только при ясной необходимости через -force

Сохранение атрибутов файла

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

optipng -preserve image.png

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

Обычный пример для папки веб-изображений:

find ./public/images -name "*.png" -type f -exec optipng -o3 -preserve {} ;

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

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

Режим проверки без записи

Ключ -simulate запускает OptiPNG в режиме симуляции:

optipng -simulate image.png

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

Пример:

optipng -simulate -o5 *.png

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

optipng -o5 *.png

Режим симуляции особенно уместен:

  • перед обработкой большой папки;

  • перед запуском -strip all;

  • перед использованием -clobber;

  • перед рекурсивным проходом через find;

  • при настройке скрипта автоматизации;

  • при работе с файлами, которые нельзя случайно изменить.

Правильный порядок для осторожной оптимизации:

optipng -simulate -o3 *.png

потом:

optipng -o3 -keep *.png

или:

optipng -o3 -dir optimized *.png

Такой подход уменьшает риск ошибок, особенно если пользователь плохо знаком с поведением shell-масок, относительных путей или рекурсивных команд.

Проверка и исправление PNG

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

optipng -fix broken.png

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

Когда -fix имеет смысл:

  • PNG не открывается в браузере или просмотрщике;

  • файл был поврежден при передаче;

  • изображение содержит некорректные блоки;

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

  • программа обработки изображений ругается на структуру файла.

Пример:

optipng -fix -out repaired.png broken.png

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

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

optipng -simulate -fix *.png

После проверки можно выполнить настоящую обработку:

optipng -fix -dir repaired *.png

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

Работа с метаданными и служебными данными

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

optipng -strip all image.png

-strip all удаляет метаданные PNG. В терминологии OptiPNG metadata objects — это информация в ancillary chunks, кроме tRNS, потому что tRNS связан с прозрачностью и рассматривается как часть канала изображения.

Когда -strip all уместен:

  • подготовка изображений для сайта;

  • удаление лишних комментариев;

  • публикация скриншотов;

  • уменьшение веса PNG;

  • очистка файлов перед передачей наружу;

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

Когда -strip all лучше не применять автоматически:

  • изображения требуют точного цветового управления;

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

  • файл содержит важные текстовые комментарии;

  • изображение является частью архива, где метаданные нужны;

  • downstream-инструменты ожидают определенные ancillary chunks.

Пример аккуратного применения:

optipng -simulate -strip all image.png

Затем:

optipng -strip all -out image.clean.png image.png

Для папки веб-ассетов:

optipng -o3 -strip all *.png

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

optipng -o2 -strip all -dir optimized *.png

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

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

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

Примеры:

optipng image.bmp
optipng icon.gif
optipng scan.pnm
optipng picture.tiff

Если исходный файл называется image.bmp, результат будет создан как image.png, если такой файл можно записать без конфликта имен.

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

optipng logo.bmp

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

logo.bmp
logo.png

Такой режим удобен для простых технических задач: есть BMP-исходник или GIF без сложной анимационной логики, нужно получить компактный PNG. При этом OptiPNG не нужно воспринимать как замену ImageMagick, XnConvert или графических редакторов. Если нужна массовая конвертация десятков форматов, изменение размера, кадрирование, цветовая коррекция, WebP/AVIF/JPEG-экспорт — это не зона OptiPNG.

Отдельно стоит учитывать ограничения TIFF: поддержка TIFF ограничена несжатыми PNG-совместимыми изображениями в grayscale, RGB и RGBA. Метаданные из внешних форматов в PNG не импортируются.

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

Сценарий: есть папка public/images, в ней PNG-логотипы, иконки, скриншоты и иллюстрации. Нужно уменьшить вес файлов перед публикацией, не меняя визуальное качество.

Безопасный вариант:

cd public/images
mkdir optimized
optipng -o3 -strip all -dir optimized *.png

Что делает команда:

  • optipng запускает программу;

  • -o3 выбирает умеренно тщательный уровень оптимизации;

  • -strip all удаляет метаданные;

  • -dir optimized пишет результат в отдельную папку;

  • *.png выбирает все PNG в текущей директории.

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

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

find ./public/images -name "*.png" -type f -exec optipng -o3 -strip all -preserve {} ;

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

find ./public/images -name "*.png" -type f -exec optipng -simulate -o3 -strip all -preserve {} ;

В PowerShell аналогичный сценарий:

Get-ChildItem .publicimages -Recurse -Filter *.png | ForEach-Object {
    optipng -o3 -strip all -preserve $_.FullName
}

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

Рабочий порядок для сайта:

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

  2. Запустить OptiPNG с -simulate.

  3. Обработать несколько файлов через -dir.

  4. Проверить внешний вид изображений.

  5. Запустить обработку всей папки.

  6. Проверить сборку сайта.

  7. Зафиксировать изменения.

Что не стоит делать:

  • сразу запускать -o7 -strip all -clobber по всей медиабиблиотеке;

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

  • удалять метаданные там, где они нужны;

  • считать, что каждый PNG обязательно уменьшится;

  • ожидать от OptiPNG сжатия JPEG, WebP или AVIF.

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

В проектах OptiPNG часто используют не как разовую утилиту, а как часть процесса подготовки ассетов. Например, в репозитории есть папки:

src/assets/
public/images/
docs/screenshots/

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

optipng -o3 src/assets/*.png
optipng -o3 public/images/*.png
optipng -o2 docs/screenshots/*.png

Если нужно не менять исходники, лучше писать результат отдельно:

mkdir build-images
optipng -o3 -dir build-images public/images/*.png

Для npm scripts можно использовать команду вида:

{
  "scripts": {
    "optimize:png": "optipng -o3 public/images/*.png"
  }
}

Для Makefile:

optimize-png:
	optipng -o3 public/images/*.png

Для документации:

optipng -o2 -strip all docs/screenshots/*.png

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

В командной работе полезно придерживаться правила: OptiPNG обрабатывает только финальные PNG, а не исходные дизайнерские файлы. Если у команды есть .psd, .fig, .svg, .afdesign или другие исходники, PNG обычно является экспортом. Оптимизация применяется именно к экспорту, который попадет в сайт, приложение или документацию.

Качество изображения после OptiPNG

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

Для пользователя это выглядит так:

  • текст на скриншоте остается резким;

  • прозрачность сохраняется;

  • края иконок не размываются;

  • цветные области не получают JPEG-артефактов;

  • изображение остается PNG;

  • браузеры и просмотрщики открывают файл как обычный PNG.

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

Типичные результаты зависят от содержимого:

Тип PNG Вероятность заметной экономии Комментарий
Скриншоты интерфейса Средняя Часто есть запас за счет фильтров и IDAT
Логотипы с прозрачностью Средняя Может помочь палитра и метаданные
Иконки Средняя или высокая Особенно если файл экспортирован неэффективно
Фотографии в PNG Низкая или средняя PNG плохо подходит для фото по сравнению с JPEG/WebP
Уже оптимизированные PNG Низкая Повторная обработка часто почти ничего не дает
PNG с лишними метаданными Средняя -strip all может дать дополнительную экономию

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

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

OptiPNG работает последовательно и подбирает варианты сжатия в зависимости от уровня оптимизации. Чем выше уровень -o, тем больше проб и тем дольше обработка. На одном маленьком PNG разница может быть незаметной, но на папке из сотен файлов -o7 превращается в ощутимую операцию.

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

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

Ситуация Рекомендуемый режим
Быстрая локальная проверка -o1 или -o2
Обычный сайт -o2 или -o3
Финальная публикация небольшой папки -o5
Максимальный результат для отдельных файлов -o7
Большая медиабиблиотека -o2, запуск порциями
CI-процесс -o2 или -o3, чтобы не тормозить сборку

Если нужно ускорить обработку большого количества файлов, OptiPNG можно запускать параллельно средствами оболочки, но делать это нужно аккуратно. Например, на Linux через find и xargs с параллельностью:

find ./images -name "*.png" -type f -print0 | xargs -0 -n 1 -P 4 optipng -o3

Здесь -P 4 запускает до четырех процессов одновременно. Это уже не функция самого OptiPNG, а возможность xargs. На слабом сервере такая команда может создать лишнюю нагрузку, поэтому значение -P нужно выбирать осторожно.

Подробный разбор ключей OptiPNG

-h, -help, -?

Показывают справку:

optipng -h

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

-version

Показывает сведения о сборке:

optipng -version

Команда полезна для диагностики, особенно если один и тот же скрипт запускается на разных компьютерах.

-v

Включает -verbose и -version:

optipng -v image.png

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

-quiet и -silent

Уменьшают количество сообщений:

optipng -quiet image.png

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

-o

Выбирает уровень оптимизации:

optipng -o3 image.png

Это главный пользовательский параметр для баланса скорости и результата.

-f

Выбирает PNG delta filters:

optipng -f0-5 image.png

Фильтры PNG влияют на то, как строки изображения подготавливаются перед сжатием. Значения 0, 1, 2, 3, 4 соответствуют стандартным PNG-фильтрам None, Left, Up, Average и Paeth, а 5 означает adaptive filtering.

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

-i

Выбирает interlace type:

optipng -i0 image.png
optipng -i1 image.png

-i0 делает выходной PNG non-interlaced, -i1 включает Adam7 interlace. По умолчанию OptiPNG сохраняет тип interlace как у входного файла.

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

-nb, -nc, -np, -nx

Эти ключи запрещают отдельные виды lossless image reduction:

optipng -nb image.png
optipng -nc image.png
optipng -np image.png
optipng -nx image.png

Их смысл:

Ключ Что запрещает
-nb bit depth reduction
-nc color type reduction
-np palette reduction
-nx все перечисленные reduction-операции

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

-nz

Запрещает перекодирование IDAT:

optipng -nz image.png

При этом операции, не требующие recoding, например объединение IDAT chunks, все еще могут выполняться. Этот ключ действует только на PNG-входы.

-zc, -zm, -zs, -zw

Эти параметры управляют zlib-настройками:

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

Они нужны не каждому пользователю. В большинстве случаев достаточно -o. Но для экспериментов с конкретным набором PNG эти ключи дают контроль над compression levels, memory levels, strategies и window size.

-full

Выводит полный отчет по IDAT:

optipng -full image.png

Этот режим может замедлить trials. Он нужен не для повседневного сжатия, а для анализа.

-snip

Вырезает одно изображение из multi-image, animation или video files:

optipng -snip animation.gif

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

--

Останавливает разбор опций:

optipng -- -strange-name.png

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

Как OptiPNG оптимизирует PNG изнутри

OptiPNG не просто удаляет метаданные. Его алгоритм включает несколько технических шагов:

  1. уменьшение bit depth, color type и palette там, где это допустимо;

  2. запуск набора методов и стратегий сжатия;

  3. выбор параметров, которые дают наименьший выходной файл;

  4. сохранение IDAT-содержимого в один chunk;

  5. настройку zlib window size так, чтобы не ухудшать compression ratio и снизить требования к памяти декодеров.

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

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

  • фильтрам строк;

  • zlib-стратегии;

  • структуре IDAT;

  • размеру окна zlib;

  • глубине цвета;

  • палитре;

  • наличию метаданных.

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

История версий программы

История OptiPNG показывает, что программа развивалась как технический инструмент с постепенным расширением поддержки форматов, улучшением алгоритмов и исправлением ошибок безопасности. В ранних выпусках основное внимание уделялось PNG-оптимизации, zlib/libpng, обработке палитры и надежности. Позднее добавлялись параметры, важные для практической работы: -preserve, -strip, -backup, -clobber, улучшения Windows-глоббинга, исправления сборки на разных платформах и обновления встроенных библиотек.

Заметные этапы развития:

Этап Что изменилось
Линейка 0.4 Улучшалась работа с палитрой, zlib, libpng, появилась опция -preserve
Линейка 0.5 Развивались RGB(A)-to-palette reductions, bit depth reduction, BMP support
Линейка 0.6 Улучшались проверки аргументов, обработка TIFF/GIF/BMP, сборка, поведение -preserve
0.7 Добавлены -strip, -clobber, -backup, -silent, изменен вывод activity display
0.7.2 Добавлен -debug, улучшена обработка больших IDAT-размеров
0.7.5 Улучшена работа с огромными изображениями и сохранением ownership на Unix через -preserve
0.7.7 Обновлены libpng, zlib, minitiff, исправлены уязвимости в GIF/TIFF-декодерах
0.7.8 Обновлены libpng, zlib, cexcept, исправлены дефекты GIF reader и Windows wildargs
0.7.9 Обновлены libpng, zlib, cexcept, исправлен corner case в RGB-to-palette reduction
Линейка 7.9 Изменена схема нумерации, переработано руководство, удалена поддержка 16-bit platforms и опция -log

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

Особенно важным этапом стало появление -strip all. Для веб-практики это заметная функция: можно не только пересобрать PNG, но и убрать лишние служебные данные. Не менее важны -backup и -clobber, потому что они сделали поведение при перезаписи более управляемым.

Удаление -log в более поздней линии развития логично: вместо специального файла логирования проще использовать стандартное перенаправление вывода оболочки. Например:

optipng -o3 *.png > optipng-output.txt 2>&1

Такой подход лучше соответствует CLI-инструментам: программа выводит сообщения, а оболочка решает, куда их сохранить.

Плюсы OptiPNG

Сжатие PNG без потери качества

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

Локальная обработка

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

Хорошая автоматизация

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

optipng -o3 public/images/*.png

Такую команду легко повторять, документировать и встраивать в процесс сборки.

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

OptiPNG без проблем принимает несколько файлов:

optipng image1.png image2.png image3.png

или маску:

optipng *.png

Гибкие параметры

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

Осторожное поведение

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

Поддержка внешних растровых форматов

BMP, GIF, PNM и TIFF можно передать на вход и получить PNG. Это не главная функция, но в технической работе она полезна.

Минусы OptiPNG

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

Для новичков это главный барьер. В программе нет окна, кнопок, drag-and-drop, предпросмотра и визуального сравнения до и после. Пользователь должен уметь открыть терминал и написать команду.

Нет универсальной поддержки форматов

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

Сжатие не всегда заметное

Если PNG уже оптимизирован, выигрыш может быть минимальным. Это нормальное поведение, но пользователь, ожидающий минус 70% всегда, будет разочарован.

Высокие уровни могут работать долго

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

Требуется осторожность с перезаписью

Поскольку программа может изменять файлы на месте, нужно понимать -keep, -out, -dir, -clobber и -force. Без этого легко обработать не ту папку или потерять исходный вариант.

Метаданные удаляются не всегда уместно

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

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

Ожидание графического окна

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

Правильно:

optipng image.png

Запуск не из той папки

Команда:

optipng image.png

работает только если image.png находится в текущей папке или указан путь к файлу. Если файл лежит в images, нужно писать:

optipng images/image.png

Пробелы в путях без кавычек

Неправильно:

optipng main screen.png

Правильно:

optipng "main screen.png"

Попытка обработать неподдерживаемый формат

OptiPNG не сжимает JPEG:

optipng photo.jpg

Для JPEG нужен другой инструмент. OptiPNG ориентирован на PNG и поддерживаемые внешние растровые форматы.

Ожидание сильного сжатия любого PNG

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

Использование -clobber без необходимости

-clobber разрешает перезапись. В неопытных руках это рискованный ключ. Для первого запуска лучше -dir или -keep.

Удаление метаданных без проверки

Команда:

optipng -strip all *.png

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

Максимальный уровень для огромной папки

Команда:

optipng -o7 *.png

на тысячах файлов может выполняться очень долго. Лучше начать с -o2 или -o3.

Отсутствие предварительной симуляции

Перед рискованной операцией лучше выполнить:

optipng -simulate -o3 -strip all *.png

Это помогает увидеть поведение команды без изменения файлов.

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

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

Программа Тип Подход к PNG Интерфейс Сильная сторона Ограничение
Oxipng Lossless PNG/APNG optimizer Без потерь CLI / библиотека Многопоточность, современная реализация на Rust Не является графическим редактором
pngcrush Lossless PNG optimizer Без потерь CLI Гибкость и большое число параметров Более сложный и старый по ощущению инструмент
pngquant PNG compressor С потерями CLI / библиотека Сильное уменьшение размера за счет палитры Может изменить данные изображения
ImageOptim Оптимизатор изображений В основном без потерь, есть настройки GUI на macOS Удобный drag-and-drop, объединение разных оптимизаторов Привязан к графическому сценарию и macOS-приложению
TinyPNG Онлайн-сервис/API Smart lossy compression Веб/API Не требует локальной настройки, сильная экономия Файлы отправляются во внешний сервис
FileOptimizer Универсальный оптимизатор файлов Зависит от формата и плагинов GUI Windows Много форматов, пакетная обработка Тяжелее и шире по назначению
Squoosh Веб-инструмент для изображений Зависит от выбранного кодека Браузерный GUI Наглядное сравнение и разные форматы Менее удобен для автоматизации папок через CLI

Oxipng

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

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

pngcrush

pngcrush — старый и гибкий PNG optimizer. Его основная задача — уменьшение размера IDAT chunk/stream, но он также умеет работать с ancillary chunks, включая прозрачность и текстовые комментарии.

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

pngquant

pngquant — command-line utility и library для lossy compression PNG. Он уменьшает размер за счет преобразования изображения в более компактный 8-bit PNG с alpha channel. Это может давать очень сильную экономию, но уже не является строгим lossless-подходом.

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

ImageOptim

ImageOptim — популярное macOS-приложение с простым drag-and-drop-интерфейсом. Оно удаляет лишние метаданные и сжимает изображения без потери качества, делая файлы легче для загрузки в интернете.

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

TinyPNG

TinyPNG работает как веб-сервис и применяет smart lossy compression для WebP, AVIF, JPEG и PNG. Сервис уменьшает файл за счет сокращения данных изображения, обычно с почти незаметным визуальным эффектом.

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

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

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

Веб-разработчикам

Для папок public, assets, static, images программа подходит отлично. Команда легко встраивается в процесс публикации:

optipng -o3 -strip all public/images/*.png

Техническим редакторам

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

optipng -o2 docs/screenshots/*.png

Разработчикам интерфейсов

Иконки, PNG-ассеты, изображения с прозрачностью можно оптимизировать перед передачей в проект.

Администраторам сайтов

PNG в медиапапках CMS можно обрабатывать локально или на сервере, если есть доступ к командной строке.

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

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

Тем, кто любит автоматизацию

Одна команда может обрабатывать десятки или сотни PNG. Это сильнее, чем ручной drag-and-drop, когда задача повторяется регулярно.

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

OptiPNG не всем удобен. В некоторых сценариях другой инструмент будет практичнее.

Новичкам без опыта терминала

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

Тем, кому нужно визуальное сравнение

OptiPNG не показывает до и после. Для визуального сравнения удобнее Squoosh, ImageOptim или графический редактор.

Тем, кому нужно сжимать JPEG, WebP или AVIF

OptiPNG не является универсальным оптимизатором современных веб-форматов. Для JPEG, WebP и AVIF нужны другие инструменты.

Тем, кому нужна максимальная экономия любой ценой

Если допустимы потери и изменение данных изображения, pngquant или TinyPNG могут уменьшить PNG сильнее. Но это другой компромисс.

Дизайнерам, работающим только в GUI

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

Безопасность и приватность

С точки зрения приватности OptiPNG выгодно отличается от онлайн-компрессоров. Файлы остаются локально: на компьютере, сервере или в CI-среде. Это важно, если изображения содержат:

  • внутренний интерфейс продукта;

  • персональные данные на скриншоте;

  • неопубликованные макеты;

  • закрытую документацию;

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

  • коммерческие материалы до релиза.

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

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

Надежный порядок:

git status
git add public/images
git commit -m "Before PNG optimization"
optipng -simulate -o3 public/images/*.png
optipng -o3 public/images/*.png
git diff --stat

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

mkdir optimized
optipng -o3 -dir optimized *.png

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

Быстро оптимизировать один файл

optipng image.png

Оптимизировать один файл тщательнее

optipng -o5 image.png

Получить отдельный результат

optipng -o3 -out image.optimized.png image.png

Обработать все PNG в папке

optipng -o3 *.png

Сохранить резервные копии

optipng -o3 -keep *.png

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

mkdir optimized
optipng -o3 -dir optimized *.png

Удалить метаданные

optipng -o3 -strip all image.png

Проверить без записи

optipng -simulate -o3 *.png

Попытаться исправить поврежденный PNG

optipng -fix -out repaired.png broken.png

Сохранить атрибуты файлов

optipng -o3 -preserve *.png

Рекурсивно обработать папку в Linux/macOS

find ./images -name "*.png" -type f -exec optipng -o3 {} ;

Рекурсивно обработать папку в PowerShell

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

Рекомендованные сценарии использования

Для сайта

optipng -o3 -strip all public/images/*.png

Хороший баланс между размером и временем обработки.

Для технической документации

optipng -o2 docs/screenshots/*.png

Безопасный вариант для скриншотов.

Для финального релиза

optipng -o5 -strip all assets/*.png

Более тщательная обработка перед публикацией.

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

optipng -simulate -o3 -strip all *.png

Проверяет поведение команды без записи.

Для архива с сохранением атрибутов

optipng -o2 -preserve *.png

Уместно, когда важны временные метки и права.

Для исправления поврежденного файла

optipng -fix -out fixed.png damaged.png

Безопаснее, чем чинить исходник на месте.

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

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

Сильные стороны программы:

  • lossless PNG compression;

  • локальная обработка без отправки файлов наружу;

  • простая базовая команда;

  • поддержка пакетной обработки;

  • режим симуляции;

  • вывод в отдельный файл или папку;

  • сохранение резервных копий;

  • удаление метаданных;

  • проверка и исправление PNG;

  • хорошая пригодность для скриптов.

Слабые стороны:

  • нет GUI;

  • нет drag-and-drop;

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

  • не подходит для JPEG/WebP/AVIF;

  • требует аккуратности с путями и перезаписью;

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

  • не каждый PNG получится заметно уменьшить.

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

FAQ

Ухудшает ли OptiPNG качество изображения?

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

Почему размер файла не уменьшился?

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

Можно ли сжать сразу папку PNG?

Да. Для текущей папки:

optipng -o3 *.png

Для рекурсивной обработки в Linux/macOS:

find ./images -name "*.png" -type f -exec optipng -o3 {} ;

Есть ли у OptiPNG графический интерфейс?

Нет. Программа работает через командную строку. Это CLI-инструмент.

Какой уровень -o выбрать?

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

Чем OptiPNG отличается от TinyPNG?

TinyPNG — онлайн-сервис с smart lossy compression. OptiPNG — локальный lossless PNG optimizer. TinyPNG часто сильнее уменьшает размер, но меняет данные изображения и требует загрузки файла на внешний сервис.

Чем OptiPNG отличается от pngquant?

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

Можно ли использовать OptiPNG на сервере?

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

Можно ли удалить метаданные?

Да. Для этого используется:

optipng -strip all image.png

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

Можно ли восстановить поврежденный PNG?

Можно попытаться через:

optipng -fix broken.png

Безопаснее записывать результат отдельно:

optipng -fix -out repaired.png broken.png

Успех восстановления не гарантирован, но для некоторых поврежденных PNG этот режим полезен.

Можно ли конвертировать BMP или GIF в PNG?

Да. OptiPNG принимает BMP, GIF, PNM и TIFF как внешние входные форматы и создает оптимизированный PNG.

Пример:

optipng image.bmp

Поддерживает ли OptiPNG JPEG?

Нет. Для JPEG нужно использовать другие инструменты.

Что лучше: -out или -dir?

-out удобен для одного файла:

optipng -out result.png source.png

-dir удобен для папки:

optipng -dir optimized *.png

Нужно ли всегда использовать -strip all?

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

Что безопаснее для первого запуска?

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

optipng -simulate -o3 *.png

Затем:

mkdir optimized
optipng -o3 -dir optimized *.png