Как эффективно сжимать 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?
Посмотрите на первую часть этого ответа:
Он объясняет синтаксис значения + для параметра ImageMagick -quality
для PNG.
Я определенно не уверен, что это правильный способ сохранить PNG, но мой способ:
$im->setImageCompression(\Imagick::COMPRESSION_UNDEFINED); $im->setImageCompressionQuality(0);
Это дает мне отличное качество изображения и размер файла, очень похожий на PS6, сохраненный «Сохранить для Интернета». Иногда даже меньшие размеры!