解决PHP剪切缩略图生成png,gif透明图时,黑色背景问题

摘要:后台上传png图片透明底变成黑色的问题,php缩放gif和png图透明背景变成黑色的解决方法,本文讲的是php缩放gif和png图透明背景变成黑色的解决方法, 工作中需要缩放一些gif图然后在去Imagecopymerge

本文讲的是php缩放gif和png图透明背景变成黑色的解决方法, 工作中需要缩放一些gif图然后在去Imagecopymerge,可是发现使用了imagecreatetruecolor和imagecopyresampled后发现背景图不对,本来透明的背景图变成了黑色。解决方案有2种:

 

1.背景图填充白色的背景。

$white = imagecolorallocate($dstim,255,255,255);  
imagefilledrectangle($dstim,0,0,$width,$height,$white);  
imagecolortransparent($dstim,$white);


2.设置图片走透明通道。

$img = imagecreatefrompng($src);  
imagesavealpha($img,true);//这里很重要;  
$thumb = imagecreatetruecolor(300,300);  
imagealphablending($thumb,false);//这里很重要,意思是不合并颜色,直接用$img图像颜色替换,包括透明色;  
imagesavealpha($thumb,true);//这里很重要,意思是不要丢了$thumb图像的透明色;  
imagecopyresampled($thumb,$img,0,0,0,0,300,300,300,300);  
imagepng($thumb,"temp.png");


 


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_1580