为什么图像压缩有时会减小尺寸,有时会增加尺寸?

时间:2013-01-20 12:27:22

标签: php image compression imagemagick imagick

我正在使用Imagick来压缩图像(主要是JPEG),但结果非常随机。例如,查看这些结果(近似数字和所有JPEG):

1600kb - > 600kb(保存1000kb)
1000kb - > 1200kb(浪费200kb)
400kb - > 500kb(浪费100kb)

这是我使用的代码:

$image = new Imagick($path);
$image->stripImage(); // remove metadata, though Imagick adds its own, not sure why
$image->setImageCompressionQuality(0); // lossless compression
$image->writeImages($path, true); // writeImages instead of writeImage, in case it's a GIF

1 个答案:

答案 0 :(得分:4)

图像重新压缩将根据源图像文件而有所不同。如果原始图像是使用优质软件精心制作的,则ImageMagick可能无法与之匹配。简单的解决方案:比较原始版本和新版本的文件大小,保持较小。

另请注意,压缩质量编号表示不同的内容,具体取决于图像的文件类型。特别地,0表示JPEG的“最差质量,最小尺寸”,但对于PNG意味着“快速压缩,不一定小”。见http://www.imagemagick.org/script/command-line-options.php#quality