2014-06-22 93 views
1

我想改變多個圖像的不透明度,當我使用setImageOpacity它適用於所有圖像,但不能與png圖像一起使用,當我使用evaluateImage時,它對於透明圖像很好,但對其他圖像不適用。如何可以用於所有類型的圖像的方法相同的方法,如果圖像是透明的或不此,如果使用條件getImageAlphaChannel()功能使用imagick改變圖像的不透明度

檢測如果圖像具有任何透明

是代碼

<?php 
// Open the original image 
$image = new Imagick(); 
$image->readImage(3.jpg); 

// Open the watermark 
$watermark = new Imagick(); 
$watermark->readImage(2.png); 

    $watermark->setImageOpacity(0.444); 
    //$watermark->evaluateImage(Imagick::EVALUATE_MULTIPLY, 0.0, Imagick::CHANNEL_ALPHA); 


$watermark->rotateImage(new ImagickPixel('transparent'), 90); 
// Overlay the watermark on the original image 
$image->compositeImage($watermark, imagick::COMPOSITE_OVER, 20, 20); 

// send the result to the browser 
header("Content-Type: image/" . $image->getImageFormat()); 
echo $image; 

回答

2

使用注:

如果Imagick已編譯爲 ImageMagick版本6.4.0或更新版本,則此方法可用。

相關問題