为了账号安全,请及时绑定邮箱和手机立即绑定

png图片怎么才能处理成图片本身的样子,而不是带有背景色

如题,那个背景太难看了

正在回答

3 回答

其实吧是因为imagecopymerge这个函数搞的鬼,如果用imagecopy函数则不会有这种问题,但是imagecopy不可以调整透明度。

也就是说imagecopymerge会忽略原始图片的透明度,而imagecopy保留了原始图片的透明度。

imagecopymerge可以调整透明度,而imagecopy不可以

那么我既要保留原始图片的透明度又要合成后的logo图片的透明度可以调整,怎么办呢?

有一种方法,就是创建一个画布,分别把背景图片与logo用imagecopy“塞”进一画布里,在把画布放在原始背景图片的上面,调透明度,效果就出来了,光说可能会听着糊涂,我上我写的代码吧。

function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){
$cut = imagecreatetruecolor($src_w, $src_h);
imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
imagecopy($cut, $src_im,0, 0, $src_x, $src_y, $src_w, $src_h);
imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity);
}

希望有所帮助

2 回复 有任何疑惑可以回复我~

我也遇到这个问题,不是透明度的原因。和在ps里面合成的效果明显不一样,换成jpg的就不会这样了。

0 回复 有任何疑惑可以回复我~

透明度的事儿吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

png图片怎么才能处理成图片本身的样子,而不是带有背景色

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信