+ -
当前位置:首页 → 问答吧 → php gd 透明背景处理

php gd 透明背景处理

时间:2010-11-27

来源:互联网

php gd处理图片的时候遇到背景透明图片时处理后背景变成了黑色。

比如缩放一个图片

PHP代码
  1. $im = imagecreatefromstring(file_get_contents($img_url));   
  2. $resize_im = imagecreatetruecolor($size,$size);    
  3. imagecopyresampled($resize_im,$im,0,0,0,0,$size,$size,$x,$y);   


如果图片是背景透明的,处理后就会变成黑色。
解决方法如下:

PHP代码
  1. $im = imagecreatefromstring(file_get_contents($img_url));   
  2. $resize_im = imagecreatetruecolor($size,$size);    
  3. imagealphablending($resize_im,false);   
  4. imagesavealpha($resize_im,true);   
  5. imagecopyresampled($resize_im,$im,0,0,0,0,$size,$size,$x,$y);   

imagealphablending($resize_im,false); 意思是不合并颜色,直接颜色替换,包括透明色;
imagesavealpha($resize_im,true); 意思是不要丢了图像的透明色;

作者: 我不是鱼   发布时间: 2010-11-27