Php 如何从透明图像创建图像颜色?
我正在构建一种系统,它只是从其他图像创建动态图像。我使用:Php 如何从透明图像创建图像颜色?,php,image,colors,gd,transparent,Php,Image,Colors,Gd,Transparent,我正在构建一种系统,它只是从其他图像创建动态图像。我使用:imagecreatefromstring(文件获取内容(“小丑”avatar.png))创建图像并成功输出;但是,它会弄乱透明区域上的所有颜色 查看原始图像: 下面是PHP文件的结果: 以下是源代码,只有几行: <?php $im = imagecreatefromstring(file_get_contents("clown_avatar.png")); //$bg = imagecolorallocate($im,0,0
imagecreatefromstring(文件获取内容(“小丑”avatar.png))
创建图像并成功输出;但是,它会弄乱透明区域上的所有颜色
查看原始图像:
下面是PHP文件的结果:
以下是源代码,只有几行:
<?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);
?>
原因是您正在丢弃alpha层。通过这样做,图像中原本不可见的部分现在变得可见
相反,您要做的是使用alpha加载原始PNG图像,并使用将其复制到所需图像(仅为背景色)上。好的,如何仍然使用imagecreatefromstring()执行此操作,因为我必须从不同的扩展名创建图像,这是最简单的方法。相反,解析MIME类型并分别处理每个类型。如果编程工作量太大,请分别处理PNG和GIF。感谢您的帮助:)