情况这样,左边的图片是使用php磨圆后的图片,然后与白色背景的图片合并之后,透明部分奇怪的变成了黑色。
最初的代码,简单的合并
//背景图片
$bgPath= './resource/bg.png';
$bgImage= imagecreatefrompng($bgPath);
//透明图片
$desPath = './resource/avator.png';
$desImage = imagecreatefrompng($desPath);
//创建图像
$imagebox = imagecreatetruecolor(imagesx($bgImage),imagesy($bgImage));
imagecopyresampled($imagebox, $bgImage, 0, 0, 0, 0, imagesx($bgImage), imagesy($bgImage), imagesx($bgImage), imagesy($bgImage));
//----合并透明图片----
imagecopymerge($imagebox, $desImage, 20, 0, 0, 0, imagesx($desImage), imagesy($desImage), 100);
$filename = './images/'.uniqid().'.jpg';
imagejpeg($imagebox,$filename);
imagedestroy($imagebox);
第一种方式
使用 imagecopy 合并
这里既是直接把 imagecopymerge($imagebox, $desImage, 20, 0, 0, 0, imagesx($desImage), imagesy($desImage), 100);