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 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
Smarty分页实现方法完整实例
May 11 PHP
PHP登录(ajax提交数据和后台校验)实例分享
Dec 29 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
PHP获取对象属性的三种方法实例分析
Jan 03 PHP
PHP实现的支付宝支付功能示例
Mar 26 PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 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学习教程之第2天
2008/06/15 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
jQuery学习基础知识小结
2010/11/25 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
Python json模块使用实例
2015/04/11 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
python批量图片处理简单示例
2019/08/06 Python
python面向对象 反射原理解析
2019/08/12 Python
python 列表推导式使用详解
2019/08/29 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
劳力士官方珠宝商:J.R. Dunn Jewelers
2018/09/29 全球购物
建材业务员岗位职责
2013/12/08 职场文书
建筑文秘专业个人求职信范文
2013/12/28 职场文书
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
安全大检查实施方案
2014/02/22 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
2014年采购工作总结
2014/11/20 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
Nginx配置根据url参数重定向
2022/04/11 Servers