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的分页功能
Mar 21 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
PHP获取网址的顶级域名函数代码
Sep 24 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
php 实现进制相互转换
Apr 07 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
PHP中Trait及其应用详解
Feb 14 PHP
PHP下载文件函数与用法示例
Sep 27 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 curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
以一段代码为实例快速入门Python2.7
2015/03/31 Python
python 网络爬虫初级实现代码
2016/02/27 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
python制作简单五子棋游戏
2019/06/18 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
如何运行带参数的python脚本
2019/11/15 Python
tensorflow 模型权重导出实例
2020/01/24 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
传播学毕业生求职信
2013/10/11 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
继承权公证书范本
2015/01/23 职场文书
Java 异步任务计算FutureTask
2022/04/28 Java/Android