开发框架 \ ThinkPHP \ ThinkPHP 的图像处理功能

ThinkPHP 的图像处理功能

总点击459
简介:ThinkPHP的图像处理功能,即Image.class.php。支持 GD库和Imagick库,包括对GIF图像处理的支持。

ThinkPHP 的图像处理功能,即 Image.class.php。支持


GD 库和 Imagick 库,包括对 GIF 图像处理的支持。

一. 实例化类库

1 //实例化图像处理类,默认为GD库

2 $image = new Image();

1 //采用Imageick扩展库,默认没安装

2 $image = new Image(Image:: IMAGE_IMAGICK );

3 $image = new Image('Imagick');

PS:Imageick 扩展库在处理更加复杂的图像上具有很强的优势,但如果只是一些普通


的需求,使用 GD 库完全够用。

 

二. 获取图像信息

我们讲一张图片保存在 Public 公共目录下,命名为:1.jpg。首先,通过 Image 打开图像。

1 //实例化图象处理类库

2 $image = new Image();

3 //加载一张预处理的图片

4 $image->open('./Public/1.jpg');

1 //上面两句,可以用一句话包含

2 $image = new Image(Image:: IMAGE_GD,'./Public/1.jpg');

ThinkPHP 的图像处理功能

//获取图片信息

$arr['width']=$image->width();

$arr['height']=$image->height();

$arr['type']=$image->type();

$arr['mime']=$image->mime();

$arr['size']=$image->size();

var_dump($arr);

ThinkPHP 的图像处理功能

 

三. 图像处理

使用 crop()和 save()方法可以实现图像的裁剪功能。

1 //裁剪图片,高400,宽400

2 $image->crop(400,400)->save('./Public/2.jpg');

1 //裁剪图片,坐标100,100开始裁剪

2 $image->crop(400,400,100,100)->save('./Public/2.jpg');

1 //裁剪图片,生成后的图片压缩成高宽200

2 $image->crop(400,200,200)->save('./Public/2.jpg');

 

使用 thumb 方法生成缩略图。

1 //生成缩略图

2 $image->thumb(300,300)->save('./Public/2.jpg');

PS:虽然我们设置了宽高 300,但实际上它是 300 x 168,因为生成缩略图采用默认


等比例缩放的。如果想用其它缩略图模式,可以使用以下方式。

ThinkPHP 的图像处理功能

1 IMAGE_THUMB_SCALE = 1 ; //等比例缩放类型

2 IMAGE_THUMB_FILLED = 2 ; //缩放后填充类型

3 IMAGE_THUMB_CENTER = 3 ; //居中裁剪类型

4 IMAGE_THUMB_NORTHWEST = 4 ; //左上角裁剪类型

5 IMAGE_THUMB_SOUTHEAST = 5 ; //右下角裁剪类型

6 IMAGE_THUMB_FIXED = 6 ; //固定尺寸缩放类型

ThinkPHP 的图像处理功能

1 //生成缩略图,以中心点截取,直接传3也可以

2 $image->thumb(300,300,Image::IMAGE_THUMB_CENTER)->save('./public/2.jpg');

这行和上面这行的效果是一样的:

1 $image->thumb(300,3)->save('./public/2.jpg');

 

使用 water()方法可以生成一张包含水印的图片。

1 //在图片右下角添加水印并生成

2 $image->water('./Public/logo.png')->save('./Public/2.jpg');

由于默认是右下角水印位置,如果想更改水印位置,可以在第二参数使用如下:

ThinkPHP 的图像处理功能

1 IMAGE_WATER_NORTHWEST = 1 ; //左上角水印

2 IMAGE_WATER_NORTH = 2 ; //上居中水印

3 IMAGE_WATER_NORTHEAST = 3 ; //右上角水印

4 IMAGE_WATER_WEST = 4 ; //左居中水印

5 IMAGE_WATER_CENTER = 5 ; //居中水印

6 IMAGE_WATER_EAST = 6 ; //右居中水印

7 IMAGE_WATER_SOUTHWEST = 7 ; //左下角水印

8 IMAGE_WATER_SOUTH = 8 ; //下居中水印

9 IMAGE_WATER_SOUTHEAST = 9 ; //右下角水印

ThinkPHP 的图像处理功能

1 //更改水印到左上角

2 $image->water('./public/logo.jpg',image::IMAGE_WATER_NORTHWEST)->save('./public/2.jpg');

同样,用1来代替 image::IMAGE_WATER_NORTHWEST 的效果是一样的。

 

1 //设置水印的透明度,默认为80,1-100之间

2 $image->water('./public/logo.jpg',1,30)->save('./public/2.jpg');

 

1 //设置文本水印

2 $image->text('This is ThinkPHP','./public/javatext.ttf',20,'#ffffff',image::IMAGE_WATER_NORTHWEST)->save('./public/2.jpg');

 

意见反馈 常见问题 官方微信 返回顶部