600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整

ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整

时间:2022-10-14 00:18:02

相关推荐

ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整

php教程|php手册

ThinkPHP,水印,修复,PNG透明,增加,JPEG,图

php教程-php手册

网络测速源码,ubuntu键盘打开终端,家中很小的爬虫,php syntax,大古seolzw

这篇文章主要介绍了ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整,包含了对多层水印设置代码的修改,修改的部分在注释里有较为详细的说明,非常具

直播平台网站源码html5,小米电脑安装ubuntu,服务器怎么跑tomcat,自制爬虫地暖,php框架开发的app,seo的选择lzw

算命网站php源码,vscode简洁界面操作,ubuntu 依赖,安卓 tomcat,sqlite 批量添加,网页设计的工作流程,制作数据库查询网页,阿里云服务器 root 密码,jquery panel 插件,字节前端框架组,爬虫抓取小说,php -i,如何进行seo,springboot语法,帝国cms 灵动标签 序号,网页设计模板网站,易语言 组合框 网页,怎么把易企秀的模板图片,企业智能网站后台管理系统,页面倒计时后跳转,文档管理系统 源码,vb会计程序lzw

本文实例讲述了ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整的方法。分享给大家供大家参考。具体实现方法如下:

TP自带有图片类,有给图片加水印的功能。

这里完善了:

1. png水印透明

2. 加水印后质量调整(只限于JPG格式)

代码如下:

复制代码 代码如下:

/**

+———————————————————-

* 为图片添加水印

+———————————————————-

* @static public

+———————————————————-

* @param string $source 原文件名

* @param string $water 水印图片

* @param string $$savename 添加水印后的图片名

* @param string $alpha 水印的透明度

+———————————————————-

* @return string

+———————————————————-

* @throws ThinkExecption

+———————————————————-

*/

static public function water($source, $water, $savename=null, $alpha=80) {

//检查文件是否存在

if (!file_exists($source) || !file_exists($water))

return false;

//图片信息

$sInfo = self::getImageInfo($source);

$wInfo = self::getImageInfo($water);

//如果图片小于水印图片,,不生成图片

if ($sInfo[“width”] < $wInfo["width"] || $sInfo[height] < $wInfo[height])

return false;

//建立图像

$sCreateFun = “imagecreatefrom” . $sInfo[‘type’];

$sImage = $sCreateFun($source);

$wCreateFun = “imagecreatefrom” . $wInfo[‘type’];

$wImage = $wCreateFun($water);

//设定图像的混色模式

imagealphablending($wImage, true);

//图像位置,默认为右下角右对齐

$posY = $sInfo[“height”] – $wInfo[“height”];

$posX = $sInfo[“width”] – $wInfo[“width”];

/* 为了保持PNG的透明效果 使用imagecopy 此处为修改过的*/

imagecopy($sImage, $wImage, $posX, $posY, 0, 0, $wInfo[‘width’], $wInfo[‘height’]);

//生成混合图像,这是系统的

// imagecopymerge($sImage, $wImage, $posX, $posY, 0, 0, $wInfo[‘width’],$wInfo[‘height’], $alpha);

//输出图像

$ImageFun = ‘Image’ . $sInfo[‘type’];

//如果没有给出保存文件名,默认为原图像名

if (!$savename) {

$savename = $source;

@unlink($source);

}

//保存图像,如果是jpg,则设置一下水印质量 此处为修改过的:

if ($sInfo[‘type’] == “jpg” || $sInfo[‘type’] == “jpeg”) {

imagejpeg($sImage, $savename, 90);//第3个参数即使质量大小,因为只有imagejpeg支持这个参数

} else {

$ImageFun($sImage, $savename);

}

//$ImageFun($sImage, $savename);//这是系统的

imagedestroy($sImage);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。