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].