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 静态变量与自定义常量的使用方法
Jan 26 PHP
PHP中使用unset销毁变量并内存释放问题
Jul 05 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
PHP多态代码实例
Jun 26 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
使用php实现从身份证中提取生日
May 09 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
Jul 21 PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
php在linux环境中如何使用redis详解
Dec 15 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中cookie的使用方法
2014/03/29 PHP
php生成图片验证码
2015/06/09 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
js 解决“options为空或不是对象”
2008/12/22 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
java必学必会之static关键字
2015/12/03 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
wxPython的安装与使用教程
2018/08/31 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
大门门卫岗位职责
2013/11/30 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
公司股份合作协议书
2014/12/07 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript