intervention/image 基本信息
Intervention Image is an open source PHP image handling and manipulation library. It provides an easier and expressive way to create, edit, and compose images.
(它是一款开源的PHP类库,用更简单的方法来创建、编辑和合成图像)
基于PHP语言的图像处理库,在github上 fork 6000+,在图像处理这块,算是排名第一。
图像处理,处理什么?裁剪
旋转
水印(图/文)
拼合
马赛克
透明度
…
还有一些更为专业的图像处理需求,就不一一列举了,类库提供了几十个API用来处理这些问题。
下载地址
composer: composer require intervention/image
运行环境
最新版本 2.0+ 需要 PHP >= 5.4,并且安装了 GD2.0 或 Imagick(>=6.5.7),GD库多数情况下默认已安装。
开发文档
为什么又是老外写的,中国程序员加油!
声明
所有文章均为1024编程实验室(www.sodevel.com)原创,任何形式的转载都必须征得本站同意。
作者联系方式,微信:pmtt9121,QQ 983430207
图像处理的根本流程
我们可以对图像进行各种操作,但是究其根本,主要步骤有3个:打开图像
处理图像
保存或输出图像
看一个最简单的例子// 按需加载类库文件,composer之后就有这个文件
include('vendor/autoload.php');
// use 图像处理类
use Intervention\Image\ImageManagerStatic as Image;
// 打开图像
$img = Image::make('20171207/a.jpg');
// 处理图像,按1000*1000裁剪
$img->resize(1000,1000);
// 输出图像到浏览器
$img->response('jpg',100);
使用类库include('vendor/autoload.php');
use Intervention\Image\ImageManagerStatic as Image;
注意:ImageManagerStatic 是通过静态方法使用的“::”,如果想new 的话,需要use ImageManager类。
打开图像
以下几种方法,均可以得到一个Image对象,后续所有操作均基于此。
从文件读取图像$img = Image::make('20171207/a.jpg');
它不仅仅可以读取一个文件路径,还包含这些:网址(需开启allow_url_fopen)
二进制的图像数据
URL编码的图像
base64编码的图像
gd库的资源句柄
imagick 对象
intervention 对象
splFileInfo 对象
创建一个新图像$img = Image::canvas(800, 600, '#ccc');
接收一个上传文件$img = Image::make($_FILES['image']['tmp_name']);
(保存/输出)图像
为什么不先写处理? 因为处理要写的有点多,放在最后吧。
另存为
$img->save(‘新图片文件名’);
立刻输出到浏览器
echo $img->response(‘图像后缀比如jpg’,’图像质量,最高100’);
处理图像
以下代码均略过打开、保存的过程,仅提供处理方法。
术语说明:w 代表width,也就是宽度
h 代表Height,也就是高度
c 代表 callback 代表回调函数
比例,表示宽高比,宽高比改变会导致图像走形
p 表示position 代表图像的位置
图像大小resize(w,w,h, $c) 缩放,宽高比错误会丢失比例
widen(w,w,c) 按比例增加宽度
heighten(h,h,c) 按比例增加高度
fit(w,w,h,c,c,p) 裁剪缩放,保持比例,切除多余部分
resizeCanvas(w,w,h,…) 按比例缩放,多余部分用纯色背景填充
crop(w,w,h,x,x,y) 以XY作为起点,裁剪wh大小的图像
图像属性
包括伽玛值、亮度、对比度、色彩、灰度、反转等,大家自行阅读文档。
图像效果
包括过滤、像素画、旋转、马赛克。
画图
鞋子、像素、画线、长方形、圆圈等
图像信息
包括宽高、exif、mime等。
总结
作为一款开源类库,必须涵盖了所有常用操作,在此基础上尽量简化代码、提高处理效率,就是良心类库。