phpcms生成缩略图时png和gif透明格式出现黑底解决方案

官方的thumb方法虽然也写了相关代码,但是没有生效,上传png透明图片的时候永远是生成黑色背景的,效果如图:


所以需要对thumb方法做个改造,让他支持png和gif格式的缩略图裁剪

找到代码:phpcmslibsclassesimage.class.php 找到thumb方法,找到代码:
  1. if($type=='gif' || $type=='png') { 

 

注释掉紧跟的两行代码
  1. //$background_color  =  imagecolorallocate($thumbimg,  255, 255, 255);  //  指派一个绿色   
  2.             //imagecolortransparent($thumbimg, $background_color);  //  设置为透明色,若注释掉该行则输出绿色的图 
然后添加如下代码:
  1. $c = imagecolorallocatealpha($thumbimg, 255 , 255 , 255 , 127);//拾取一个完全透明的颜色 
  2.             imagealphablending($thumbimg, false);//关闭混合模式,以便透明颜色能覆盖原画布 
  3.             imagefill($thumbimg, 0 , 0 , $c);//填充 
  4.             imagesavealpha($thumbimg, true); 

保存,然后更新缓存即可。
说明
1、255,255,255表示白色背景,自己可以选择
2、127表示alpha透明度,0-127之间即可,127表示完全透明

缩略图效果图:



本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com