PNG, или Portable Network Graphics, - это формат файлов растровых изображений, разработанный для замены GIF. В изображениях PNG используется сжатие без потерь, что позволяет получать высококачественные изображения при большем размере файла.
Среди известных инструментов сжатия PNG для Linux - optipng, pngquant и pngng. Эти инструменты могут помочь уменьшить размер PNG-изображения, применяя методы сжатия с потерями и без потерь, а также другие оптимизации. Среди этих вариантов, как правило, предпочтение отдается pngquant, поскольку он позволяет максимально уменьшить размер файла при сохранении высокого качества изображения.
Шаги по сжатию файла PNG в Linux
Откройте приложение терминала.
Установите пакет pngquant для вашей системы.
1 | sudo apt update && sudo apt install --assume-yes pngquant |
1 | sudo zypper refresh && sudo zypper install --non-interactive pngquant |
1 | sudo dnf install --assumeyes pngquant |
Определите текущий размер файла изображения PNG.
1 | ls -lh filename.png |
Сожмите PNG-файл с помощью pngquant.
1 | pngquant --verbose filename.png |
Проверьте размер полученного файла для сравнения.
1 | ls -lh filename*.png |
По умолчанию к имени сжатого файла добавляется -fs8.
Уменьшите размер файла и оптимизируйте использование pngquant в соответствии с вашими требованиями.
Параметры pngquant
- --force перезаписывать существующие выходные файлы (синоним: -f)
- --skip-if-larger сохранять только преобразованные файлы, если они меньше исходных
- --output file путь к целевому файлу, который следует использовать вместо --ext (синоним: -o)
- --ext new.png задает пользовательский суффикс/расширение для имен выходных файлов
- --quality min-max не сохранять ниже минимума, использовать меньше цветов ниже максимума (0-100)
- --speed N компромисс между скоростью и качеством. 1=медленно, 4=по умолчанию, 11=быстро и грубо
- --nofs отключает дизеринг Флойда-Стейнберга
- --posterize N вывод цвета с более низкой точностью (например, для вывода ARGB4444)
- --strip удалить необязательные метаданные (по умолчанию на Mac)
- --verbose выводить сообщения о состоянии (синоним: -v)