2014-09-02 94 views
0

我想用帶有一些不透明度的黑色遮蓋原始圖像。想讓原始圖像稍微暗一些。我用寫這樣的代碼,但它不工作: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

回答

1

如果你期待一個黑暗的廣場,你$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);