2014-09-02 7 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

Что не работает? –

+0

@LorenzMeyer Я ожидаю увидеть темный квадрат на картинке, но вывод - исходное изображение без изменений – abrahab

ответ

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); 
Смежные вопросы