dedecms 解决水印使用png无法透明的问题

找到 include/inc_photograph.php 找到 ImgWaterMark 函数

  1. //读取水印图片
  2.     if(!emptyempty($w_img) && file_exists($w_img)){
  3.      $ifWaterImage = 1;
  4.      $info = '';
  5.      $water_info = getimagesize($w_img,$info);
  6.      $width      = $water_info[0];
  7.      $height     = $water_info[1];
  8.      switch($water_info[2]){
  9.            case 1 :
  10.        if(!function_exists("imagecreatefromgif")) return;
  11.        $water_img = imagecreatefromgif($w_img);
  12.        break;
  13.            case 2 :
  14.        if(!function_exists("imagecreatefromjpeg")) return;
  15.        $water_img = imagecreatefromjpeg($w_img);
  16.        break;
  17.            case 3 :
  18.        if(!function_exists("imagecreatefrompng")) return;
  19.        $water_img = imagecreatefrompng($w_img);
  20.        break;
  21.            case 6 :
  22.        if(!function_exists("imagecreatefromwbmp")) return;
  23.        $srcFile_img = imagecreatefromwbmp($w_img);    
  24.        break;
  25.            default :
  26.        return;
  27.      }

找到 $water_img = imagecreatefrompng($w_img); 这行改为:

  1.  if(!function_exists("imagecreatefrompng")) return;
  2.     //经过修改的加水印代码 080818 neo
  3.         $water_im_bak = imagecreatefrompng($w_img);
  4.         $water_img = imagecreatetruecolor($width,$height);  
  5.         imagealphablending($water_img,false);
  6.         imageSaveAlpha($water_img,true);
  7.         $white = ImageColorAllocate($water_img, 255,255,255);
  8.         ImageColorTransparent($water_img,$white);  
  9.         imagecopyresampled($water_img,$water_im_bak,0,0,0,0,$width,$height,$width,$height);
  10.        //$water_img = imagecreatefrompng($w_img);

就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值