网站建设与维护工作待遇互联网法律服务平台
本节课我们来学习一下图像处理功能,这功能是外置的,并非系统内置。 
 
 
一.图像处理功能
1. 图像处理功能不是系统内置的功能了,需要通过 composer 引入进来; 
 
composer require topthink/think-image  
2. 引入进来之后,首先创建图像处理对象; 
 
$image = Image::open('image.png');  
3. 获得了图像处理对象后,可以得到这张图片的各种属性;  
 
//图片宽度
echo $image->width();
//图片高度
echo $image->height();
//图片类型
echo $image->type();
//图片 mime
echo $image->mime();
//图片大小
dump($image->size());  
4. 使用 crop()方法可以裁剪图片,并使用 save()方法保存到指定路径; 
 
5. 可以点击追踪方法内部,参看源码参数,了解更多的传值方法;  
 
//裁剪图片
$image->crop(550,400)->save('crop1.png');  
6. 使用 thumb()方法,可以生成缩略图,配合 save()把缩略图保存下来;  
 
//生成缩略图
$image->thumb(500,500)->save('thumb1.png');  
7. 这里要注意一个问题,虽然设置了宽和高,但高度变成了 282,说明是等比例的; 
 
8. 可以点击追踪方法内部,第三个参数默认为:$type = self::THUMB_SCALING; 
 
9. 而这个常量设置的定义如下:  
 
/* 缩略图相关常量定义 */
const THUMB_SCALING
= 1; //常量,标识缩略图等比例缩放类型
const THUMB_FILLED
= 2; //常量,标识缩略图缩放后填充类型
const THUMB_CENTER
= 3; //常量,标识缩略图居中裁剪类型
...  
10. 使用 rotate()方法,可以旋转图片,默认是 90 度,参数可以设置; 
 
$image->rotate(180)->save('rotate1.png');  
11. save()方法可以配置的参数除了保存文件名的路径,还有以下几个: 
 
12. save('路径',['类型','质量','是否隔行扫描']),追踪到方法查看; 
 
save($pathname, $type = null, $quality = 80, $interlace = true)  
13. water()方法,可以给图片增加一个图片水印,默认位置为右下角,可看源码常量; 
 
$image->water('mr.lee.png')->save('water1.png');  
14. text()方法,可以给图片增加一个文字水印,具体如下: 
 
$image->text('Mr.Lee',getcwd().'/1.ttf',20,'#ffffff')->save('text1.png')  
