PHP + Imagick - PNG压缩

时间:2011-09-18 16:33:30

标签: php compression png imagick

如何有效压缩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)。

使用Imagick保存压缩PNG的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

看一下这个答案的第一部分:

它解释了ImageMagick对PNG的-quality设置的含义+语法。

答案 1 :(得分:1)

我绝对不确定保存PNG是否正确,但我的方法是:

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

这为我提供了完美的图像质量和文件大小,与PS6保存的“Save for Web”非常相似。有时甚至更小的尺寸!