thinkPHP框架实现图像裁剪、缩放、加水印的方法


Posted in PHP onMarch 14, 2017

本文实例讲述了thinkPHP框架实现图像裁剪、缩放、加水印的方法。分享给大家供大家参考,具体如下:

ThinkPHP 图片处理函数,需要文字水印字体,可在windows下 控制面板 > 大图标(右上角) > 字体 找到需要的字体

/**
* 图像的裁剪、缩放、加水印
* @param string $path    路径
* @param int $width   裁剪的宽度/限制的高度或宽度,当有$height值时此值为图片的宽度,否则为限制的宽度或高度
* @param int $height   [可选]裁剪的高度
* @param boolean $water   [可选]是否加水印
* @param int $word    [可选]水印文字
*/
function zoom_image($path,$width = 300,$height = null,$water = null,$word = 'water'){
  $image = new \Think\Image();
  $image->open($path);
  $imgWidth = $image->width();
  $imgHeight = $image->height();
  // 限制尺寸
  if($width and !$height){
    $maxSize = $width;
    // 宽度或高度大于规定尺寸时
    if($imgWidth > $maxSize or $imgHeight > $maxSize){
      $size = image_min_width($imgWidth,$imgHeight,$maxSize);
      $image->thumb($size['width'], $size['height']);
      $do = true;
      $dowater = true;
    }
  // 裁剪固定尺寸
  }else if($width and $height){
    $size = image_min_width($imgWidth,$imgHeight,$width);
    $image->thumb($size['width'], $size['height'])->crop($width, $height);
    $do = true;
    $dowater = true;
  }
  if($dowater and $water and $word){
    $image->text($word,'./Public/images/arial.ttf',20,'#dddddd', \Think\Image::IMAGE_WATER_SOUTHEAST,-10);
  }
  // 未操作则不保存
  if($do){
    $image->save($path);
  }
}
PHP 相关文章推荐
用PHP查询域名状态whois的类
Nov 25 PHP
php include,include_once,require,require_once
Sep 05 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
基于curl数据采集之单页面采集函数get_html的使用
Apr 28 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
php实现mysql备份恢复分卷处理的方法
Dec 26 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
Nov 09 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 #PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 #PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 #PHP
Yii2下点击验证码的切换实例代码
Mar 14 #PHP
php分页查询的简单实现代码
Mar 14 #PHP
php实现购物车产品删除功能(2)
Jul 23 #PHP
php实现产品加入购物车功能(1)
Jul 23 #PHP
You might like
PHP中GET变量的使用
2006/10/09 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
div层的移动及性能优化
2010/11/16 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
医药营销专业个人自荐信
2013/09/29 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
比较node.js和Deno
2021/04/27 Javascript
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
Java异常体系非正常停止和分类
2022/06/14 Java/Android
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技