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类Class的概念
Jun 14 PHP
关于PHP的curl开启问题探讨
Apr 08 PHP
php类的定义与继承用法实例
Jul 07 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
Laravel 5.3 学习笔记之 错误&日志
Aug 28 PHP
php、java、android、ios通用的3des方法(推荐)
Sep 09 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 PHP
PHP钩子与简单分发方式实例分析
Sep 04 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
Apr 17 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 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
优化使用mysql存储session的php代码
2008/01/10 PHP
关于php fread()使用技巧
2010/01/22 PHP
PHP用GD库生成高质量的缩略图片
2011/03/09 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
sina的lightbox效果。
2007/01/09 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
Python txt文件加入字典并查询的方法
2019/01/15 Python
Python time库基本使用方法分析
2019/12/13 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Numpy 多维数据数组的实现
2020/06/18 Python
大学应届毕业生个人求职信
2013/09/23 职场文书
个人素质的自我评价分享
2013/12/16 职场文书
同学会邀请书大全
2014/01/12 职场文书
简单的项目建议书模板
2014/03/12 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
旷课检讨书500字
2014/10/14 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
驳回起诉裁定书
2015/05/19 职场文书
企业培训简报范文
2015/07/20 职场文书
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python