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

 更新时间:2017年03月14日 12:01:09   作者:chinalorin  
这篇文章主要介绍了thinkPHP框架实现图像裁剪、缩放、加水印的方法,结合实例形式给出了thinkPHP针对图片进行裁剪、缩放及加水印的自定义函数,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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);
  }
}

PS:这里再为大家推荐几款比较实用的图片处理工具供大家参考使用:

在线图片转换BASE64工具:
http://tools.jb51.net/transcoding/img2base64

ICO图标在线生成工具:
http://tools.jb51.net/aideddesign/ico_img

在线Email邮箱图标制作工具:
http://tools.jb51.net/email/emaillogo

在线图片格式转换(jpg/bmp/gif/png)工具:
http://tools.jb51.net/aideddesign/picext

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《smarty模板入门基础教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

相关文章

  • PHP时间戳 strtotime()使用方法和技巧

    PHP时间戳 strtotime()使用方法和技巧

    php strtotime()解释如何使用,看了下面的文章就要以学习到了。下面还有php文档函数解释。
    2013-10-10
  • Laravel框架实现利用监听器进行sql语句记录功能

    Laravel框架实现利用监听器进行sql语句记录功能

    这篇文章主要介绍了Laravel框架实现利用监听器进行sql语句记录功能,结合实例形式分析了Laravel框架监听器的创建、引入以及使用监听器记录sql语句的相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • php微信扫码支付 php公众号支付

    php微信扫码支付 php公众号支付

    这篇文章主要为大家详细介绍了php微信扫码支付,php公众号支付功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • PHP对称加密算法(DES/AES)类的实现代码

    PHP对称加密算法(DES/AES)类的实现代码

    本篇文章主要介绍了PHP对称加密算法(DES/AES)类的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 在laravel框架中实现封装公共方法全局调用

    在laravel框架中实现封装公共方法全局调用

    今天小编就为大家分享一篇在laravel框架中实现封装公共方法全局调用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Laravel如何友好的修改.env配置文件详解

    Laravel如何友好的修改.env配置文件详解

    使用laravel框架开发PHP程序,配置框架的.env文件是至关重要的,这个文件上需要配置数据库、数据库用户以及缓存等。下面这篇文章主要给大家介绍了Laravel如何友好的修改.env配置文件的相关资料,需要的朋友可以参考下。
    2017-06-06
  • 使用xampp搭建运行php虚拟主机的详细步骤

    使用xampp搭建运行php虚拟主机的详细步骤

    这篇文章主要介绍了通过使用xampp搭建运行php虚拟主机的步骤,介绍很详细,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解

    thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解

    这篇文章主要介绍了thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果,结合完整实例形式详细分析了thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果具体数据表、控制器、前台视图与样式相关实现技巧,需要的朋友可以参考下
    2019-07-07
  • PHP生成推广海报的方法分享

    PHP生成推广海报的方法分享

    本文给大家分享的是如何使用php生成推广海报的方法思路以及几种示例代码,有需要的小伙伴可以参考下
    2018-04-04
  • thinkPHP5框架中widget的功能与用法详解

    thinkPHP5框架中widget的功能与用法详解

    这篇文章主要介绍了thinkPHP5框架中widget的功能与用法,结合实例形式分析了thinkPHP5中Widget相关概念、使用方法及操作注意事项,需要的朋友可以参考下
    2018-06-06

最新评论