去掉图片转换后的黑色背景

在使用php的GD函数生成thumbnail后,如果原图片中有白色区域,生成的新图片会有黑色的,并不是透明的


原图片


thumbnail

显然不希望有这种黑色的背景出现,应该是透明的

那么如何处理呢

        $im = imagecreatefrompng($url);
        if ($im) {
//              echo '<p>created image handle<br /></p>';
                global $width, $height;
                $width = imagesx($im);
                $height = imagesy($im);
                $x = $width/2;
                $y = $height/2;

                $dst = imagecreatetruecolor($x, $y);
//                $background = imagecolorallocate($im, 0, 0, 0);
//                imagecolortransparent($im, $background);
//                imagealphablending($im, false);
//                imagesavealpha($im, true);
                imagecopyresampled($dst, $im, 0, 0, 0, 0, $x, $y, $width, $height);
//              header("Content-Type:image/jpeg");
                imagepng($dst, 'imgdst.png');
//              imagejpeg($dst);
                imagedestroy($dst);
                imagedestroy($im);
        }

标红的代码段就是可已经黑色背景去掉,并且将起设为透明的处理方法

参考了http://stackoverflow.com/questions/2611852/imagecreatefrompng-makes-a-black-background-instead-of-transparent

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值