pngquant — это компрессор PNG, который значительно уменьшает размеры файлов за счет преобразования изображений в более эффективный 8-битный формат PNG с альфа-каналом (часто на 60–80 % меньше, чем 24/32-битные файлы PNG). Сжатые изображения полностью соответствуют стандартам и поддерживаются всеми веб-браузерами и операционными системами.
Это официальный репозиторий pngquant
. Механизм сжатия также доступен в виде встраиваемой библиотеки.
pngquant *.png
… | pngquant - | …
Чтобы еще больше уменьшить размер файла, попробуйте oxipng, ImageOptim или zopflipng.
Полный список см. в pngquant -h
.
--quality min-max
min
и max
— это числа в диапазоне от 0 (худшее) до 100 (идеальное), аналогично JPEG. pngquant будет использовать наименьшее количество цветов, необходимое для достижения или превышения max
качества. Если в результате преобразования качество будет ниже min
, изображение не будет сохранено (при выводе на стандартный ввод будет выведен 24-битный оригинал), а pngquant завершит работу с кодом состояния 99.
pngquant --quality=65-80 image.png
--ext new.png
Установите собственное расширение (суффикс) для имени выходного файла. По умолчанию используется -or8.png
или -fs8.png
. Если вы используете --ext=.png --force
options, pngquant перезапишет входные файлы на месте (используйте с осторожностью).
-o out.png
или --output out.png
Записывает преобразованный файл по заданному пути. При использовании этой опции допускается только один входной файл.
--skip-if-larger
Не записывайте конвертированные файлы, если конвертация того не стоит.
--speed N
Компромисс скорости/качества от 1 (самый медленный, высочайшее качество, самые маленькие файлы) до 11 (самый быстрый, менее стабильное качество, легкое сжатие). Значение по умолчанию — 4. Рекомендуется оставить значение по умолчанию, если только вам не требуется генерировать изображения в реальном времени (например, фрагменты карты). Более высокие скорости подходят для 256 цветов, но плохо справляются с меньшим количеством цветов.
--nofs
Отключает сглаживание Флойда-Стейнберга.
--floyd=0.5
Управляет уровнем дизеринга (0 = нет, 1 = полный). Обратите внимание, что символ =
является обязательным.
--posterize bits
Уменьшите точность палитры на количество бит. Используйте, когда изображение будет отображаться на экранах с низкой глубиной (например, 16-битные дисплеи или сжатые текстуры в формате ARGB444).
--strip
Не копируйте необязательные фрагменты PNG. Метаданные всегда удаляются на Mac (при использовании программы чтения Cocoa).
Полный список опций см. на странице руководства ( man pngquant
).
pngquant имеет двойную лицензию:
Под лицензией GPL v3 или более поздней версии с дополнительным уведомлением об авторских правах, которое необходимо сохранить для более старых частей кода.
Или коммерческую лицензию на использование программного обеспечения без лицензии GPL (например, с закрытым исходным кодом или для распространения в App Store). Вы можете получить лицензию через Super Source. Если у вас есть вопросы, отправьте электронное письмо по адресу [email protected].