复制带阴影和透明背景的图像

时间:2011-07-21 11:26:27

标签: php image-processing image-manipulation

我尝试复制PNG图像,该图像具有阴影(即alpha通道)和透明背景。但是,生成的图像用黑色绘制阴影和透明背景。我尝试使用imagecopyimagecopymerge;两者都没有产生有效结果,这与原始图像不同。

Preview of the images.

$src = imagecreatefrompng('img_box3-bg.png');

/* Using imagecopy. */
$dest = imagecreatetruecolor(116, 100);
imagecopy($dest, $src, 0, 0, 0, 0, 116, 100);
imagepng($dest, 'img_box3-bg.imagecopy.png');
imagedestroy($dest);

/* Using imagecopymerge. */
$dest2 = imagecreatetruecolor(116, 100);
imagecopymerge($dest2, $src, 0, 0, 0, 0, 116, 100, 100);
imagepng($dest2, 'img_box3-bg.imagecopymerge.png');
imagedestroy($dest2);

imagedestroy($src);

帮助?先谢谢。

1 个答案:

答案 0 :(得分:3)

这样的事情:

$src = imagecreatefrompng('img_box3-bg.png');

/* Using imagecopy. */
$dest = imagecreatetruecolor(116, 100);

// this is new
imagesavealpha($dest, true);
$transparent = imagecolorallocatealpha($dest, 0, 0, 0, 127);
imagefill($dest, 0, 0, $transparent);

imagecopy($dest, $src, 0, 0, 0, 0, 116, 100);

header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);