php - imagemagick用黑色掩盖图像

问题描述:

我想用带有一些不透明度的黑色遮盖原始图像。想让原始图像稍微暗一些。我用写这样的代码,但它不工作:php - imagemagick用黑色掩盖图像

$image = new Imagick("test.jpg"); 

$drawblacklayer = new ImagickDraw(); 
$drawblacklayer->setFillColor('black'); 
$drawblacklayer->setFillOpacity(0.8); 
$coordinate = array(array('x' => 0, 'y' => 0), array('x' => 200, 'y' => 200)); // seems need to use the original size of $image, but it's testing 

$drawblacklayer->polygon($coordinate); 

$image->drawImage($drawblacklayer); 

header('Content-type: image/png'); 
echo $image; 
+0

什么不行? – 2014-09-02 18:21:40

+0

@LorenzMeyer我期望看到图片中的黑暗方块,但输出是没有改变的原始图片 – abrahab 2014-09-02 18:23:38

如果你期待一个黑暗的广场,你$coordinate阵列需要有定义的所有点。

$coordinate = array( 
    array('x' => 0, 'y' => 0), // Top-Left 
    array('x' => 200, 'y' => 0), // Top-Right 
    array('x' => 200, 'y' => 200), // Bottom-Right 
    array('x' => 0, 'y' => 200), // Bottom-Left 

); 
$drawblacklayer->polygon($coordinate); 

或使用ImagickDraw::rectangle方法。

$drawblacklayer->rectangle(0, 0, 200, 200);