【发布时间】:2021-06-09 21:40:10
【问题描述】:
我正在使用imagecopymerge 将图像放在另一个图像之上,但是,当我这样做时,图像的透明部分会变成白色,这不是我想要的。所以我有以下图片作为背景:
然而,这(连同我的其余代码)导致圆圈周围的区域和边界内为白色:
我现在用来注入值的代码是:
$magical = imagecreatefrompng('Magical.png');
imagecopymerge($img, $magical, 366, 135, 0, 0, 32, 32, 100);
研究表明我应该尝试使用imagealphablending 或imagecopy 之类的东西,而不是imagecopymerge,但这不起作用。我还找到了尝试imagecolortransparent 和imagecolorallocate 的参考,但这也不起作用。因此,例如,这些尝试都没有奏效:
$magical = imagecreatefrompng('Magical.png');
$white = imagecolorallocate($output, 255, 255, 255);
imagecolortransparent($magical, $white);
imagecopymerge($img, $magical, 366, 135, 0, 0, 32, 32, 100);
// or this attempt
$magical = imagecreatefrompng('Magical.png');
imagealphablending($img, true);
imagealphablending($magical, true);
imagecopymerge($img, $magical, 366, 135, 0, 0, 32, 32, 100);
我在这里缺少什么?如何确保将图像添加到另一个图像时保留其透明度?
【问题讨论】:
-
imagealphablending 的结果是什么?
-
在官方 PHP 文档中,用户提交了一个可能对您有用的答案。 php.net/manual/en/function.imagecopymerge.php#92787
-
我看到了,@hppycoder,如上所述,
imagecolortransparent没有做任何帮助。 -
A,看起来是什么,identical 图像,@HassaanAli。
标签: php image png transparency