<?php// +----------------------------------------------------------------------// | TOPThink [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2010 http://topthink.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>// +----------------------------------------------------------------------// | ThinkImage.class.php 2013年03月05日// +----------------------------------------------------------------------namespace Think;/*** 图片处理驱动类,可配置图片处理库* 目前支持GD库和imagick* @author 麦当苗儿 <zuojiazi@vip.qq.com>*/class Image{/* 驱动相关常量定义 */const IMAGE_GD = 1; //常量,标识GD库类型const IMAGE_IMAGICK = 2; //常量,标识imagick库类型/* 缩略图相关常量定义 */const IMAGE_THUMB_SCALE = 1 ; //常量,标识缩略图等比例缩放类型const IMAGE_THUMB_FILLED = 2 ; //常量,标识缩略图缩放后填充类型const IMAGE_THUMB_CENTER = 3 ; //常量,标识缩略图居中裁剪类型const IMAGE_THUMB_NORTHWEST = 4 ; //常量,标识缩略图左上角裁剪类型const IMAGE_THUMB_SOUTHEAST = 5 ; //常量,标识缩略图右下角裁剪类型const IMAGE_THUMB_FIXED = 6 ; //常量,标识缩略图固定尺寸缩放类型/* 水印相关常量定义 */const IMAGE_WATER_NORTHWEST = 1 ; //常量,标识左上角水印const IMAGE_WATER_NORTH = 2 ; //常量,标识上居中水印const IMAGE_WATER_NORTHEAST = 3 ; //常量,标识右上角水印const IMAGE_WATER_WEST = 4 ; //常量,标识左居中水印const IMAGE_WATER_CENTER = 5 ; //常量,标识居中水印const IMAGE_WATER_EAST = 6 ; //常量,标识右居中水印const IMAGE_WATER_SOUTHWEST = 7 ; //常量,标识左下角水印const IMAGE_WATER_SOUTH = 8 ; //常量,标识下居中水印const IMAGE_WATER_SOUTHEAST = 9 ; //常量,标识右下角水印/*** 图片资源* @var resource*/private $img;/*** 构造方法,用于实例化一个图片处理对象* @param string $type 要使用的类库,默认使用GD库*/public function __construct($type = self::IMAGE_GD, $imgname = null){/* 判断调用库的类型 */switch ($type) {case self::IMAGE_GD:$class = 'Gd';break;case self::IMAGE_IMAGICK:$class = 'Imagick';break;default:E('不支持的图片处理库类型');}/* 引入处理库,实例化图片处理对象 */$class = "Think\\Image\\Driver\\{$class}";$this->img = new $class($imgname);}/*** 打开一幅图像* @param string $imgname 图片路径* @return Object 当前图片处理库对象*/public function open($imgname){$this->img->open($imgname);return $this;}/*** 保存图片* @param string $imgname 图片保存名称* @param string $type 图片类型* @param integer $quality 图像质量* @param boolean $interlace 是否对JPEG类型图片设置隔行扫描* @return Object 当前图片处理库对象*/public function save($imgname, $type = null, $quality=80,$interlace = true){$this->img->save($imgname, $type, $quality,$interlace);return $this;}/*** 返回图片宽度* @return integer 图片宽度*/public function width(){return $this->img->width();}/*** 返回图片高度* @return integer 图片高度*/public function height(){return $this->img->height();}/*** 返回图像类型* @return string 图片类型*/public function type(){return $this->img->type();}/*** 返回图像MIME类型* @return string 图像MIME类型*/public function mime(){return $this->img->mime();}/*** 返回图像尺寸数组 0 - 图片宽度,1 - 图片高度* @return array 图片尺寸*/public function size(){return $this->img->size();}/*** 裁剪图片* @param integer $w 裁剪区域宽度* @param integer $h 裁剪区域高度* @param integer $x 裁剪区域x坐标* @param integer $y 裁剪区域y坐标* @param integer $width 图片保存宽度* @param integer $height 图片保存高度* @return Object 当前图片处理库对象*/public function crop($w, $h, $x = 0, $y = 0, $width = null, $height = null){$this->img->crop($w, $h, $x, $y, $width, $height);return $this;}/*** 生成缩略图* @param integer $width 缩略图最大宽度* @param integer $height 缩略图最大高度* @param integer $type 缩略图裁剪类型* @return Object 当前图片处理库对象*/public function thumb($width, $height, $type = self::IMAGE_THUMB_SCALE){$this->img->thumb($width, $height, $type);return $this;}/*** 添加水印* @param string $source 水印图片路径* @param integer $locate 水印位置* @param integer $alpha 水印透明度* @return Object 当前图片处理库对象*/public function water($source, $locate = self::IMAGE_WATER_SOUTHEAST,$alpha=80){$this->img->water($source, $locate,$alpha);return $this;}/*** 图像添加文字* @param string $text 添加的文字* @param string $font 字体路径* @param integer $size 字号* @param string $color 文字颜色* @param integer $locate 文字写入位置* @param integer $offset 文字相对当前位置的偏移量* @param integer $angle 文字倾斜角度* @return Object 当前图片处理库对象*/public function text($text, $font, $size, $color = '#00000000',$locate = self::IMAGE_WATER_SOUTHEAST, $offset = 0, $angle = 0){$this->img->text($text, $font, $size, $color, $locate, $offset, $angle);return $this;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。