InterventionImage是一个开源的PHP图像处理和操作库。它提供了一个更简单也更优雅的方式来创建/编辑/组合图像,并且支持最常见的两个图像处理库GDLibrary和Imagick。
它的让PHP处理图片的代码,变得更简单,并且更有可读性,更容易理解.无论是我们希望创建图像缩略图,增加水印,给大图片转码压缩,他都可以让我们的代码更少,更具有可读性.
简单的代码
例如:
只要四行代码,我们就实现了对图片的缩放和增加水印.
//打开图片img=Image::make(public/foo.jpg);//对图片缩放img-resize(,);//增加水印img-insert(public/watermark.png);//保存图片img-save(public/bar.jpg);
由于它支持链式操作,所以我们可以将四行代码写成一行:
img=Image::make(public/foo.jpg)-resize(,)-insert(public/watermark.png);
对于超大图片,比如超过像素的图片,GD库可能执行不了,这时只要配置一下,使用imagick库即可,代码不需要任何改动.
Image::configure([driver=imagick]);
多种文件类型和打开方式
根据扩展的不同,支持的扩展格式如下:
并且支持多种图片资源的打开方式:
string-文件路径.
string-文件URL链接(需要开启allow_url_fopen).
string-图片的二进制数据.
string-图片的Data-URL数据.
string-图片文件的Base64数据.
resource-GD资源实例.(使用GD)
object-Imagick资源实例(使用Imagick)
object-Intervention\Image\Image资源实例
object-SplFileInfo资源实例(包括laravel的上传文件对象或ThinkPHP的上传文件对象
方便的设置颜色
更让小编心动的是,当我们需要设置颜色时,他支持多种设置方式,非常方便:
//用数组的方式img-fill([,0,0]);//用数组的方式,设置透明度img-fill([,,,0.5]);//简写十六进制img-fill(#ccc);//标准十六进制img-fill(#cccccc);//不要前缀的十六进制img-fill(cccccc);//rgb写法img-fill(rgb(,0,0));//使用透明度的rgba写法img-fill(rgba(0,0,0,0.5));
URL动态参数处理
最终效果像这样: