Изменение размера изображения и качества PNG
В моем приложении мне нужно изменить размер и улучшить качество файлов PNG.
В полном размере PNG составляют 3100x4400 пикселей с использованием дискового пространства 2,20 МБ.
При выполнении следующей команды:
convert -resize 1400 -quality 10 input.png output.png
изображения изменяются до 1400x2000 с использованием дискового пространства 5,33 МБ.
Итак, мой вопрос: как уменьшить размер файла?
Ответы
Ответ 1
-
Вы можете дополнительно снизить качество PNG с помощью постеризации:
https://github.com/pornel/mediancut-posterizer (Mac GUI)
Это операция с потерями, которая позволяет zlib лучше сжиматься.
-
Преобразование изображения в PNG8 с помощью pngquant.
Он уменьшает количество изображений до 256 цветов, поэтому качество зависит от типа изображения, но pngquant делает очень хорошие палитры, поэтому вы можете быть удивлены, как часто это работает.
-
Используйте Zopfli-png или AdvPNG лучше сжать изображения.
Это без потерь и рекомендуется для всех изображений, если у вас есть циклы CPU.
Ответ 2
На странице справки говорится, что параметр -quality
, используемый с PNG, устанавливает уровень сжатия для zlib, где (грубо) 0 является наихудшим сжатием, 100 - наилучшим (по умолчанию 75). Поэтому попробуйте установить -quality
в 100 или даже удалить эту опцию.
Другой метод - указать PNG:compression-level=N
, PNG:compression-strategy=N
и PNG:compression-filter=N
для достижения еще лучших результатов.
http://www.imagemagick.org/script/command-line-options.php#quality
Ответ 3
Я обнаружил, что лучший способ - использовать
- density [value]
параметр.