2017-08-10 3 views
0

私はImagick PHPライブラリでいくつかの画像をテストして、どの圧縮を使用するかを確認しています。しかし、私が何をしても、出力ファイルには何の変化もないようです。ImagickおよびJPEG画像圧縮 - 変更なし?

$original_image = new \Imagick($image_url); 

foreach (['original', '92', '80', '60', '40'] as $compression_size) 
{ 
    $tester = clone $original_image; 

    // don't compress the original 
    if ('original' != $compression_size) 
    { 
     $tester->setImageCompression(Imagick::COMPRESSION_JPEG); 
     $tester->setCompressionQuality((int) $compression_size); 
    } 
    $filename: <original base> . "-$compression_size.jpg"; 

    file_put_contents($filename, $tester->getImageBlob()); 

    $tester = null; 
} 

結果は、様々な圧迫の間のファイルサイズは変更しないことを示し、視覚的に、オリジナルとさえ圧縮= 40バージョンの違いはありません。これが私の基本的なプロセスです。私はここで間違って何をしていますか?ドキュメント(http://php.net/manual/en/imagick.setcompressionquality.php)から

答えて

2

このメソッドは、唯一の新しいイメージのために働く、例えばImagick :: newPseudoImageによって作成されたもの。既存のイメージの場合、Imagick :: setImageCompressionQuality()を使用する必要があります。

ので、交換してください

$tester->setImageCompressionQuality((int) $compression_size); 
+0

Dangitため

$tester->setCompressionQuality((int) $compression_size); 

!私はそれを読んで、まだ間違った関数名をコピーすることができました。ありがとう! –

関連する問題