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

论坛 期权论坛 脚本     
匿名技术用户   2021-1-16 03:37   179   0

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


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

找到代码:phpcms\libs\classes\image.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表示完全透明

缩略图效果图:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP