使用PHP GD扩展的不透明效果

时间:2012-02-07 12:13:24

标签: php gd

我想知道在使用PHP GD扩展程序在其他图像上绘制图像时是否可能产生“不透明”效果?是否有任何内置函数可以获得我想要的结果或者我必须使用imagesetpixel方式实现自己的实现?

一个伪代码,用于说明我现在正在尝试做的事情:

// Background image
$image_bg = imagecreatetruecolor(100, 100);
imagesavealpha($image_bg, true);

// Making background image fully transparent
imagefill($image_bg, 0, 0, imagecolorallocatealpha($image_bg, 0, 0, 0, 127));

// Now the actual image I want to draw with opacity (true color PNG)
$image = imagecreatefrompng(...);

// Drawing with 50 "merge" value
imagecopymerge($image_bg, $image, ..., 50);

上述代码的问题在于imagecopymerge不会尊重背景图像的alpha值,并会将图像与背景合并,就像它是不透明的黑色一样(生成的图像不会透明度为50%)。 / p>

修改:我最终使用imagecoloratimagesetpixel方式实现了自己的功能。

1 个答案:

答案 0 :(得分:-1)