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

来源:3-3 给图片添加图片水印—保存和销毁图片

橘子菌

2016-09-14 17:34

如题,那个背景太难看了

写回答 关注

3回答

  • 慕仔8740354
    2016-11-04 11:42:23

    其实吧是因为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);
    }

    希望有所帮助

  • 保卫家乡
    2016-10-14 18:06:17

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

  • 无畏前行
    2016-09-16 15:31:17

    透明度的事儿吧

GD库实现图片水印与缩略图

带你快速高效的完成图片处理工作,还可以加深对面向对象的理解

19006 学习 · 162 问题

查看课程

相似问题