Php imagecopymerge给了我黑暗的补丁

Php imagecopymerge给了我黑暗的补丁,php,image,gd,imagecreatefrompng,Php,Image,Gd,Imagecreatefrompng,我正在尝试合并两个图像。featured7.png具有透明背景。但最终的图像如下图所示,带有一个黑色补丁: 以下是代码:请帮助: $src = imagecreatefrompng('images/featured7.png'); $dest = imagecreatefromjpeg('images/1.jpg'); imagealphablending($dest, false); imagesavealpha($dest, true); imageColorAllocateAlpha($

我正在尝试合并两个图像。featured7.png具有透明背景。但最终的图像如下图所示,带有一个黑色补丁:

以下是代码:请帮助:

$src = imagecreatefrompng('images/featured7.png');
$dest = imagecreatefromjpeg('images/1.jpg');
imagealphablending($dest, false);
imagesavealpha($dest, true);
imageColorAllocateAlpha($dest, 0, 0, 0, 127);
imagecopymerge($dest, $src, 0, 0, 0, 0, 90, 90, 100);
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
新修改的代码如下:但给出了相同的结果,只是小图像移到了更右的中心:

$img1 = imagecreatefrompng('images/featured7.png');
$img2 = imagecreatefrompng('images/1.jpg');
$image = imagecreatefromjpeg("images/1.jpg"); //
$image1 = imagecreatefrompng("images/featured7.png");//
$size = getimagesize("images/featured7.png");
$overlay = imagecreatetruecolor(80, 80);
$white = imagecolorallocate($overlay, 229, 229, 229);
imagefilledrectangle($overlay, 0, 0, 80, 80, $white);
imagecolortransparent($overlay,$white);  
imagecopy($overlay, $image1, (80-$size[0])/2, (80-$size[1])/2, 0, 0,   $size[0],$size[1]);
imagecopymerge($image, $image1, 280, 30, 0, 0, 80, 80, 100);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
以下是两张图片:


我以前遇到过同样的问题,我喜欢解决方法,请看我的问题和答案:

在您的示例中,请使用以下内容:

$dit = imagecreatefromjpeg("./dst.jpg"); //
$source = imagecreatefrompng("./source.png");//
$size = getimagesize("./source.png");
imagecopy($dit, $source, 0,0, 0, 0, $size[0], $size[1]);
header('Content-Type: image/jpeg');
imagejpeg($dit);
imagedestroy($dit);

我已将代码向上更新,请检查。。thnx为了您的帮助,请进一步建议我。@Srikanta,如果仍然有问题,请给我这两个图像源链接仅在我的本地系统中的所有图像,因为小图像(featured.png)大小为90*90,它是一个具有透明背景的png图像。。。对于大图像,六是500*360jpg@Srikanta,你可以把你的两张图片贴到你的问题上,就像我贴的问题一样,请查收