1

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
4

1 に答える 1

4

Image recompression will vary depending on the source image files. If the original image was carefully made with good software, ImageMagick might not be able to match it. Simple solution: compare the file sizes of the original and new versions, keep the smaller.

Also, note that the Compression Quality number means different things depending on the file type of the image. In particular, 0 means "worst quality, smallest size" for JPEG, but means "fast compression, not necessarily small" for PNG. See http://www.imagemagick.org/script/command-line-options.php#quality

于 2013-01-20T12:39:06.693 に答える