it-swarm.com.ru

imagemagick изменения размера и качества PNG

В моем приложении мне нужно изменить размер и сделать качество PNG-файлов ниже. 

В полноразмерном формате PNG имеют размер 3100x4400 пикселей и использует 2,20 МБ дискового пространства. 

При запуске следующей команды:

convert -resize 1400 -quality 10 input.png output.png

размер изображения увеличивается до 1400x2000 с использованием дискового пространства 5,33 МБ.

Итак, мой вопрос: как я могу уменьшить размер файла? 

15
jorgen
  1. Вы можете еще больше снизить качество PNG, используя постеризацию:

    https://github.com/pornel/mediancut-posterizer ( Mac GUI )

    Это операция с потерями, которая позволяет zlib лучше сжиматься.

  2. Конвертируйте изображение в PNG8, используя pngquant

    Он уменьшает изображения до 256 цветов, поэтому качество зависит от типа изображения, но pngquant создает очень хорошие палитры, поэтому вы можете быть удивлены тем, как часто это работает.

  3. Используйте Zopfli-png или AdvPNG для лучшего повторного сжатия изображений. 

    Это без потерь и рекомендуется для всех изображений, если у вас есть запасные циклы ЦП.

11
Kornel

На странице справки сказано, что опция -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

4
moropus

После использования imagemagick для изменения размера, вы можете сжать изображение, используя pngquant .

На Mac (с домашним пивом) brew install pngquant тогда:

pngquant <filename.png>

Это создаст новое изображение filename-fs8.png, которое обычно намного меньше по размеру.

1
spencer.sm