Set*_*eth 6 php merge gd image
我真的找不到成功做到这一点的方法..我搜索谷歌这个,它或者在图像周围有黑色阴影或所有图像不重叠.能否请你帮忙?
我对PHP很好; 我给自己一个2/5 ..如果有人愿意帮助我,我真的很感激.
我正在寻找一个简单的api,它类似于:
$color=$_GET['color'];
$face=$_GET['face'];
$hat=$_GET['hat'];
echo '<img src="avatar.php?color=$color&face=$face&hat=$hat">';
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.我也可以从我对其他语言的知识中理解php,所以不要害怕与我交谈技术; 但不是太技术性.
DMi*_*Min 11
关于这个答案有很多评论,所以我发布这个作为答案.
得到它在我的电脑上工作.
使用svens代码:
$images = array( $_GET['color'], $_GET['face'], $_GET['hat'] );
// Allocate new image
$img = imagecreatetruecolor(58, 75);
// Make alpha channels work
imagealphablending($img, true);
imagesavealpha($img, true);
foreach($images as $fn) {
// Load image
$cur = imagecreatefrompng($fn);
imagealphablending($cur, true);
imagesavealpha($cur, true);
// Copy over image
imagecopy($img, $cur, 0, 0, 0, 0, 58, 75);
// Free memory
imagedestroy($cur);
}
header('Content-Type: image/png'); // Comment out this line to see PHP errors
imagepng($img);
?>
Run Code Online (Sandbox Code Playgroud)
我将这些图像重命名为更容易:
微笑:a.png
耳机:b.png
blue:c.png
事实证明问题在于它的分层.把一个放在另一个后面
重命名图像后,使用此URL - 它将工作(在我的电脑上工作).
YOUR_FILE.php?帽子= b.png及颜色= c.png&FACE = a.png
这仍然会给你一个黑色的背景.我不确定你在服务器上的文件中是否有与上面完全相同的代码 - 因为我在你的链接上玩了图像顺序并且没有帮助.尝试在不同的文件上复制粘贴这个完全相同的代码,然后尝试.玩弄订单并检查结果.