在 php 中合并两个透明图像时出现异常结果
我想知道我是否做错了什么,或者这是否是我想要得到的好结果。左边的两个 PNG 都是 95x111。机器人的图像周围有 5px 左右的透明像素填充,但它们合并时似乎会引起问题?
$avatar = imagecreatefrompng("../guy.png");
$borderImg = imagecreatefrompng("../frame.png");
imagealphablending( $borderImg, false );
imagesavealpha( $borderImg, true );
imagecopyresampled($avatar,$borderImg, 0, 0, 0, 0, 95, 111,95, 111);
imagepng($avatar, $newfilenameBig);
我已经尝试了我能想到的所有 imagealphablending 和 imagesavealpha 组合。当我将 $avatar 设置为 imagesavealpa= true 时,它甚至不显示全部图像,仅显示框架。这不觉得很奇怪吗? 这是我使用 PHP GD 所能达到的程度吗?
更新:当使用 24 位模式在 PS 中手动创建两个图像时,可以获得所需的结果。有没有办法使用 imagecopy 或类似的方法来做到这一点?
Im wondering if I'm doing something wrong, or if this is as good a result as im going to get. Both PNGs on the left are 95x111. The image of the robot has a 5px or so padding of transparent pixels around it, but it seems to be causing problems when they merge?
$avatar = imagecreatefrompng("../guy.png");
$borderImg = imagecreatefrompng("../frame.png");
imagealphablending( $borderImg, false );
imagesavealpha( $borderImg, true );
imagecopyresampled($avatar,$borderImg, 0, 0, 0, 0, 95, 111,95, 111);
imagepng($avatar, $newfilenameBig);
Ive tried every combo of imagealphablending and imagesavealpha I can think of. When I set $avatar to imagesavealpa= true, then it doesnt even show the image as all, just the frame. Doesn't that seem strange?
Is this as far as i'm gonna get using PHP GD?
UPDATE: The desired result can be achieved when both images are created manually in PS using 24 bit mode. Is there a way to do this using imagecopy or similar?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试下面的代码,它工作正常。
Try the following code its working fine.