我想用透明度將圖像合成到另一個圖像。因此我使用Imagick和PHP。Imagick在使用setImageOpacity和composeImage時丟失了透明度
沒有人有答案,爲什麼$ imageTransparent的透明度得到使用setImageOpacity後丟失()?
這裏是我的代碼:
$image = new \Imagick();
$imageTransparent = new \Imagick();
$background = new \ImagickPixel('rgba(0,0,255,1)');
$image->newImage(600, 400, $background);
$background = new \ImagickPixel('rgba(255,255,255,0)');
$imageTransparent->newImage(600, 400, $background);
$draw = new \ImagickDraw();
$draw->setFillColor('#ff0000');
$draw->polygon(array(
array('x' => 50, 'y' => 50),
array('x' => 400, 'y' => 50),
array('x' => 50, 'y' => 300),
));
$imageTransparent->drawImage($draw);
$imageTransparent->setImageOpacity(0.5);
$image->compositeImage($imageTransparent, \Imagick::COMPOSITE_DEFAULT, 0, 0);
編輯:我不想設置在DrawObject透明度! $ imageTransparency可以是任何東西。例如一個背景透明的PNG。
我要到解散:http://www.imagemagick.org/Usage/compose/#dissolve
謝謝,但那不是我想要的:$ draw-> setFillColor('rgba(255,0,0,0.5)'); 可以說$ imageTransparent是從PNG加載的圖像;) – luggi