Сжатие изображений

Программы для сжатия изображений

imagemagick https://imagemagick.org/ — в этот пакет входят консольные утилиты convert для сжатия изображений и identify для получения информации об изображении.

 optipng http://optipng.sourceforge.net/ программа для подбора лучшего метода компрессии PNG изображения без потери качества. Она может перебирать все возможные алгоритмы сжатия и находить среди них те, что приведут к минимальному размеру конкретного изображения.

Установка:
sudo apt-get install imagemagick optipng

PNG иконки и картинки

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

Оригинальное изображение
  • Размер: 20 897 байт
  • Габариты: 293 × 367 пискелей
  • Количество цветов: 131
Сжатое изображение
  • Размер: 474 байта
  • Габариты: 293 × 367 пискелей
  • Количество цветов: 6
Информация по цветам получена так:
 identify -verbose doc-original.png | grep -i "colors\|filesize\|geometry"
  Geometry: 293x367+0+0
  Colorspace: sRGB
  Colors: 131
  Page geometry: 293x367+0+0
  Filesize: 20897B

Само сжатие состоит из двух этапов — уменьшение цветов с удалением заголовков командой

convert doc-original.png -strip -interlace none +dither -colors 6 doc-compressed.png
-strip 
удаляет комментарии, Exif, IPTC, ICC, XMP
-interlace none последовательный рендеринг изображения (картинка будет загружаться сверху-вниз, а не постепенно увеличивая качество по мере загрузки) — такой формат занимает меньше места.
+dither отключение шума пикселей для смягчения последствия уменьшения количества цветов,  (это создает иллюзию большего количества цветов и может хорошо сработать для фотографий), но для четких картинок и особенно изображений с прозрачными пикселями это приводит к артефактам.
-colors 6 указывает на количество используемых цветов

Основная задача правильно подобрать минимальное значение параметра -colors так, чтобы картинка выглядела почти как оригинал.

В данном примере идеально получилось с 6ю цветами и размер картинки получился всего 476 байт.

Следующий шаг — подбор лучшего метода компрессии без искажения качества программой 

optipng -o7 doc-compressed.png

После выполнения которой изображение занимает 474 байта

Оставьте комментарий