2012-04-30 42 views
1

在將兩個圖像連接在一起時,我經歷了一個獲取壓縮效果的問題 - 圖像和背景。一般來說,這個想法是在做出最終圖像的同時,主圖像不會失去質量,但背景確實(實際上是壓縮的)。php imagick setCompressionQuality和compositeImage

<? 
     /* --- */ 
     $imageOutput = new Imagick(); 
     $image = new Imagick($orginalPath); 
     $wathermark = new Imagick($watherMarkFile); 

     // I'm compressing background image  
     $image->setImageCompression(imagick::COMPRESSION_JPEG); 
     $image->setimagecompressionquality(20); 
     $image->flattenimages();    

     // We're creating an image wich contains compressed background 
     $imageOutput->newImage($image->getimagewidth(), $image->getimageheight(), new ImagickPixel('white')); 
     $imageOutput->compositeimage($image, Imagick::COMPOSITE_DEFAULT, 0, 0); 
     $imageOutput->setImageFormat('jpeg'); 

     // And we are composing them 
     $imageOutput->compositeImage( $wathermark, Imagick::COMPOSITE_OVERLAY, 10,10) 

     $data = $imageOutput->getimageblob(); 

     /.... output..../ 
?> 

有誰知道如何做到這一點,而不保存包含背景的壓縮文件。

對於我的英語和對任何答覆感謝道歉。 pawella

回答

1

如果你添加:

$imageOutput->setImageCompression(imagick::COMPRESSION_JPEG); 
$imageOutput->setimagecompressionquality(100);