如何从透明图像修改图像颜色?

时间:2009-12-28 11:49:01

标签: php image colors gd transparent

我正在构建一种系统,它只是从其他图像创建动态图像。我使用:imagecreatefromstring(file_get_contents("clown_avatar.png"));来创建图像并成功输出;但是,它会混淆透明区域的所有颜色。

查看原始图片:

Click

而且,这是PHP文件的结果:

Click

这是源,只有几行:

<?php

$im = imagecreatefromstring(file_get_contents("clown_avatar.png"));
//$bg = imagecolorallocate($im,0,0,0); doesn't effect
Header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);

?>

我尝试使用imagecolorallocate添加背景颜色;但是,它根本没有效果。

1 个答案:

答案 0 :(得分:0)

原因是您要丢弃alpha图层。通过这样做,图像的其他不可见部分现在变得可见。

您想要做的是使用alpha加载原始PNG图像,然后使用imagecopymerged将其复制到所需图像(仅为背景颜色)。