PHP + Imagick - сжатие PNG - PullRequest
       26

PHP + Imagick - сжатие PNG

7 голосов
/ 18 сентября 2011

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

В настоящее время я играю с этим:

// ...

$im->setImageFormat('png');
$im->setImageColorspace(\Imagick::COLORSPACE_GRAY);
$im->setImageCompression(\Imagick::COMPRESSION_LZW);
$im->setImageCompressionQuality(9);
$im->stripImage();
$im->writeImage($url_t);

Поскольку Imagick не предлагает COMPRESSION_PNG, я пробовалLZW, но размер файла почти не меняется (обычно он даже больше, чем раньше).

Если я открою изображение в GIMP и просто сохраню его, размер файла резко сократится (например, 11 341 B -> 3 763 B)или 11 057 B -> 3 538).

Как правильно сохранить сжатый PNG-файл с помощью Imagick?

Ответы [ 2 ]

3 голосов
/ 21 августа 2012

Посмотрите на первую часть этого ответа:

Объясняет значение + синтаксис настройки ImageMagick -quality для PNG.

1 голос
/ 21 августа 2012

Я точно не уверен, что это правильный способ сохранения PNG, но мой способ:

$im->setImageCompression(\Imagick::COMPRESSION_UNDEFINED);
$im->setImageCompressionQuality(0);

Это дает мне отличное качество изображения и размер файла, очень похожий на PS6, сохраненный «Save for Web». Иногда даже меньшие размеры!

...