ThinkPHP框架Image类详解

PHP

PHP学习和网站开发中,ThinkPHP不仅给我们提供一个完善的框架,也给我们提供一些常用的类自己单独开发时用。ThinkPHP扩展中Image类是一个支持GD库和Imagick库的PHP图片处理工具。目前支持图片缩略图,图片裁剪,图片添加水印和文字水印等功能,在GD库下还能良好的处理GIF图片。下面主要讲一下ThinkPHP框架里的Image类。

1、ThinkPHP Image类中的常量
驱动相关常量定义
define(‘THINKIMAGE_GD’, 1); GD库类型
define(‘THINKIMAGE_IMAGICK’, 2); imagick库类型

缩略图相关常量定义
define(‘THINKIMAGE_THUMB_SCALING’, 1); 缩略图等比例缩放类型
define(‘THINKIMAGE_THUMB_FILLED’, 2); 缩略图缩放后填充类型
define(‘THINKIMAGE_THUMB_CENTER’, 3); 缩略图居中裁剪类型
define(‘THINKIMAGE_THUMB_NORTHWEST’, 4); 缩略图左上角裁剪类型
define(‘THINKIMAGE_THUMB_SOUTHEAST’, 5); 缩略图右下角裁剪类型
define(‘THINKIMAGE_THUMB_FIXED’, 6); 缩略图固定尺寸缩放类型

水印相关常量定义
define(‘THINKIMAGE_WATER_NORTHWEST’, 1); 左上角水印
define(‘THINKIMAGE_WATER_NORTH’, 2); 上居中水印
define(‘THINKIMAGE_WATER_NORTHEAST’, 3); 右上角水印
define(‘THINKIMAGE_WATER_WEST’, 4); 左居中水印
define(‘THINKIMAGE_WATER_CENTER’, 5); 居中水印
define(‘THINKIMAGE_WATER_EAST’, 6); 右居中水印
define(‘THINKIMAGE_WATER_SOUTHWEST’, 7); 左下角水印
define(‘THINKIMAGE_WATER_SOUTH’, 8); 下居中水印
define(‘THINKIMAGE_WATER_SOUTHEAST’, 9); 右下角水印

2、ThinkPHP Image类中的方法
打开一幅图像
public function open($imgname)
$imgname 图片路径

保存图片
public function save($imgname, $type = null, $interlace = true)
$imgname 图片保存名称
$type 图片类型
$interlace 是否对JPEG类型图片设置隔行扫描

获取图片宽度
public function width()

获取图片高度
public function height()

获取图像类型
public function type()

获取图像MIME类型
public function mime()

获取图像尺寸数组
public function size()

裁剪图片
public function crop($w, $h, $x = 0, $y = 0, $width = null, $height = null)
$w 裁剪区域宽度
$h 裁剪区域高度
$x 裁剪区域x坐标
$y 裁剪区域y坐标
$width 图片保存宽度
$height 图片保存高度

生成缩略图
public function thumb($width, $height, $type = THINKIMAGE_THUMB_SCALE)
$width 缩略图最大宽度
$height 缩略图最大高度
$type 缩略图裁剪类型

添加水印
public function water($source, $locate = THINKIMAGE_WATER_SOUTHEAST)
$source 水印图片路径
$locate 水印位置
$alpha 水印透明度

图像添加文字
public function text($text, $font, $size, $color = ‘#00000000’, $locate = THINKIMAGE_WATER_SOUTHEAST, $offset = 0, $angle = 0)
$text 添加的文字
$font 字体路径
$size 字号
$color 文字颜色
$locate 文字写入位置
$offset 文字相对当前位置的偏移量
$angle 文字倾斜角度

锐化图片
public function sharp($radius = 0, $sigma = 1)
$radius 锐化角度
$sigma 锐化偏差

以后我们就算不用ThinkPHP框架,也可以用Image类处理图片了。在自己的项目中使用时,除了Image.class.php这个文件,还有三个在ThinkPHP中Image\Driver中的Gd.class.php、GIF.class.php和Imagick.class.php是三个文件。

来源:ThinkPHP框架Image类详解

发表评论

电子邮件地址不会被公开。 必填项已用*标注