上一篇文章讲解“扩展库-验证码”,本篇文章讲解“扩展库-图像处理”。
图像处理
使用图像处理,首先使用Composer安装ThinkPHP5的图像处理类库think-image:
切换到项目目录下,使用composer安装think-captcha扩展包:
安装后的think-image扩展包的位置:
下面来看下图像操作类的基础方法。
1. 打开图像文件
假设当前入口文件目录下的static文件夹下的image文件下里有一个1.png文件:
使用open方法打开图像文件进行相关操作:
新建Index控制器,并新建index方法,在方法中使用open方法打开图像
也可以从直接获取当前请求中的文件上传对象,例如:
2. 获取图像信息
可以获取打开图片的信息,包括图像大小、类型等。
修改index方法,获取打开图片的信息
预览:
3. 剪裁图片
使用crop和save方法完成裁剪图片功能。
1)从左上角开始剪裁
在Index控制器中,新建clip方法,并在方法中剪裁图片:
访问clip方法,并查看剪裁后保存的图片:
2)从某个坐标开始剪裁
支持从某个坐标开始裁剪。
修改Index控制器下的clip方法,从某个坐标开始剪裁:
访问clip方法,并查看剪裁后保存的图片:
4. 生成缩略图
1)使用thumb方法生成缩略图。
在Index控制器中,新建thumbnail方法,并在方法中生成缩略图
访问thumbnail方法,并查看生成缩略图后保存的图片:
注意:
1. 当设置生成的缩略图为100*100时,实际生成的缩略图并不是100*100,因为默认采用原图等比例缩放的方式生成缩略图,最大宽度或高度是100。
2)其他类型的缩略图生成
支持其他类型的缩略图生成,设置包括\think\Image的下列常量或者对应的数字:
修改Index控制器下的thumbnail方法,生成其他类型的缩略图:
访问后,保存的图片预览:
注意:
1. 其他类型可自行学习。
5. 图像翻转
使用flip可以对图像进行翻转操作,默认是以x轴进行翻转。
1)以x轴翻转
在Index控制器中,新建rollover方法,并在方法中进行图片翻转:
访问后,预览保存的图片:
2)以y轴翻转
我们也可以改变参数,以y轴进行翻转。
修改Index控制器下的rollover方法,以y轴进行翻转图片:
访问后,预览保存的图片:
注意:
1. 图像的翻转可以理解为图像的镜面效果与图像旋转有所不同。
6. 图像旋转
使用rotate可以对图像进行旋转操作(默认是顺时针旋转90度)。
在Index控制器中,新建rotation方法,并对图片进行旋转:
访问后,预览保存的图片:
注意:
1. 图片旋转时,将要旋转的度数传到rotate方法中,不传时,默认为顺时针90度旋转。
7. 图像保存参数
save方法可以配置的参数:
在Index控制器中,新建saveParam方法:
访问后,预览保存的图片:
注意:
1. 设置隔行扫描的情况下在网页进行浏览时。是从上到下一行一行的显示,否则图片整个显示出来 然后由模糊到清晰显示。
8. 添加水印——图片水印
系统支持添加图片及文字水印,下面依次举例说明
1)添加默认的图片水印
找一张作为水印的图片,保存到相应的项目目录下:
在Index控制器中,新建watermark方法,为图片添加图片水印:
访问后,预览保存的图片:
2)水印位置
water方法的第二个参数表示水印的位置,默认值是WATER_SOUTHEAST,可以传入下列\think\Image类的常量或者对应的数字:
修改Index控制器下的watermark方法,给图片添加一个居中水印:
访问后,预览保存的图片:
3)水印图片的透明度
还支持水印图片的透明度(0~100,默认值是100)。
修改Index控制器下的watermark方法,给图片添加水印,并设置透明度:
访问后,预览保存的图片:
9. 添加水印——文字水印
支持给图片添加文字水印,文字水印需要有文字的字体。
在public/static/文件夹下新建ttf文件夹,将字体文件放到此文件夹中:
在Index控制器中,新建twatermark方法,为图片添加文字水印
访问后,预览保存的图片:
文字水印参数:
文字水印比较多,在此只做说明不做演示了,可自行了解。
ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员
关注卓象程序员,定期发布技术文章
下一篇讲解“扩展库 - Time”
领取专属 10元无门槛券
私享最新 技术干货