2017-08-10 44 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版本沒有任何區別。我在這裏做錯了什麼?

回答

2

從文檔(http://php.net/manual/en/imagick.setcompressionquality.php):

這種方法僅適用於新的圖像例如那些通過Imagick :: newPseudoImage創建的。對於現有的圖像,你應該使用Imagick :: setImageCompressionQuality()。

所以,更換

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

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

Dangit!我讀過,但仍設法複製錯誤的函數名稱。謝謝! –