2014-06-22 56 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或更新版本,则此方法可用。

相关问题