大米CMS官网论坛,大米站长联盟,大米站长之家,大米开发者社区

 找回密码
 注册大米会员

QQ登录

只需一步,快速开始

查看: 7294|回复: 2
打印 上一主题 下一主题

ThinkPHP Image.class.php水印功能支持png原始透明

[复制链接]

11

主题

20

帖子

175

积分

新手上路

Rank: 1

积分
175
跳转到指定楼层
楼主
发表于 2016-1-13 16:21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

今天开发公司项目的时候发现thinkphp的水印功能不支持png图片的原始透明,虽然支持png的透明度度处理但是去在图片原本的透明部分填充了白色,真的是令人蛋疼。 于是果断处理,发现thinkphp使用的是imagecopymerge函数,虽然imagecopymerge支持图片的透明处理但是却不保留png的原始透明度。于是果断改为先用imagecopy进行png图片拷贝然后用imagecopymerge,进行处理的方法,效果果然有效。
修改方法很简单,在image类里面添加一个imagecopymerge_alpha方法,随便找个位置加上下面的代码就可以了。

  1. static function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){
  2.         $opacity=$pct;
  3.         // getting the watermark width
  4.         $w = imagesx($src_im);
  5.         // getting the watermark height
  6.         $h = imagesy($src_im);
  7.             
  8.         // creating a cut resource
  9.         $cut = imagecreatetruecolor($src_w, $src_h);
  10.         // copying that section of the background to the cut
  11.         imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
  12.         // inverting the opacity
  13.         //$opacity = 100 - $opacity;
  14.             
  15.         // placing the watermark now
  16.         imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
  17.         imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity);
  18.     }
  19. 第二步用imagecopymerge_alpha替换原来的imagecopymerge处理,大约83行将
  20.   

  21. //生成混合图像
  22.   imagecopymerge($sImage, $wImage, $posX, $posY, 0, 0, $wInfo['width'], $wInfo['height'], $alpha);
  23.    
  24.    替换为
  25.   

  26. //生成混合图像
  27.   self::imagecopymerge_alpha($sImage, $wImage, $posX, $posY, 0, 0, $wInfo['width'], $wInfo['height'], $alpha);
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
回复

使用道具 举报

11

主题

20

帖子

175

积分

新手上路

Rank: 1

积分
175
沙发
 楼主| 发表于 2016-1-13 16:22:04 | 只看该作者
处理后,不显示,希望管理员看看,是否可行!
回复 支持 反对

使用道具 举报

0

主题

89

帖子

234

积分

禁止发言

积分
234
板凳
发表于 2017-4-22 10:24:23 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册大米会员

本版积分规则

QQ|小黑屋|大米CMS社区 ( 蜀ICP备11002200号-2广告联系:广告联系 

Powered by 大米CMS

© 2010-2020 大米CMS Inc.

快速回复 返回顶部 返回列表