1

我正在制作一个从外部 URL 提取图像的脚本。然后我使用 imagecopy() 来合并图像,因为它是透明图像。但是,当我将 X 坐标指定为不为 0 时,它会在图像的一侧创建一个黑色区域。这是我的代码的一部分。

$src = imagecreatefrompng("URL...");
imagecopy($im, $src, 0, 0, 50, 18, 300, 300);

有没有什么办法解决这一问题?

4

2 回答 2

2

您好,欢迎来到论坛!

您需要在这些行中间添加这些行,因此您的最终代码应该是:

$src = imagecreatefrompng("URL...");
imagealphablending($im, false);
imagesavealpha($im, true);
imagecopy($im, $src, 0, 0, 50, 18, 300, 300);

现在应该可以了!

于 2012-12-10T17:25:07.153 回答
0

我花了很长时间让透明度为我工作,针对您的情况进行了修改但未经测试:

$newImg=imagecreatetruecolor($im_width,$im_height);
imagealphablending($newImg,false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
imagefilledrectangle($newImg, 0, 0, $im_width, $im_height, $transparent);
imagecopyresampled($newImg, $im, 0, 0, 0, 0, $im_width, $im_height, $im_width, $im_height);
imagecopy($newImg, $src, 0, 0, 50, 18, 300, 300);
于 2012-12-10T17:53:18.970 回答