結論
setCompressionQuality ではなく setImageCompressionQuality を使え
経緯
以下のようなPHPのコードでImageMagickで画像を圧縮しようとした。しかし一向に画像サイズが小さくならない。
<?php $im = new Imagick('test.jpg'); $im-> setCompressionQuality(10); $im->writeImage('test_1.jpg');
おかしいなあ
原因
ドキュメントにちゃんと書いてある
このメソッドは、たとえば Imagick::newPseudoImage などで作った新しい画像に対してだけ使えるものです。
既存の画像に対しては Imagick::setImageCompressionQuality() を使う必要があります。
つまり今回みたいに既存の画像を読み込んで圧縮する場合は setImageCompressionQuality()
でないと意味がない
以下だと動く
<?php $im = new Imagick('test.jpg'); $im->setImageCompressionQuality(10); $im->writeImage('test_1.jpg');
このことは PHP: Imagick::setCompressionQuality - Manual でちゃーんと書いてある。ドキュメントは読もう!、終わり