1、使用Composer安装依赖

composer require intervention/image

2、配置拓展
config/app.php中注册服务提供者到providers数组:

Intervention\Image\ImageServiceProvider::class
同样在config/app.php中注册门面到aliases数组:

'Image' => Intervention\Image\Facades\Image::class
执行如下代码发布资源

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"

将包的配置文件config/image.php发布到应用根目录的config目录下以便可以访问和配置。

3、需求条件
默认情况下,Intervention Image使用PHP的GD库扩展处理所有图片,如果你想要切换到Imagick,可以在config/image.php中修改,使用先确定本地已经安装好 GD 或 Imagick.

4.基础用法
1、读取图片

Route::get('/', function(){
    $img = Image::make('foo/bar/baz.jpg');
    return $img->response('jpg');
});

2、绘制图片

3、编辑图片

$img = Image::make('foo.jpg')->resize(320, 240)->insert('watermark.png');

4、上传图片
// resizing an uploaded file

Image::make(Input::file('photo'))->resize(300, 200)->save('foo.jpg');

5、旋转图片

$img->rotate(-45);

6、压缩图片

$img = Image::make('foo.jpg')->resize(500, 400);

// 只改变宽度,高度不变,注意:会变形

$img->resize(300, null);

// 宽度为300,高度自动调整,不会变形

$img->resize(300, null, function ($constraint) {
    $constraint->aspectRatio();
});

7、缓存

$img = Image::cache(function($image) {
    $image->make('public/foo.jpg')->resize(300, 200)->greyscale();
});

8、添加水印
// 修改指定图片的大小]

$img = Image::make('images/avatar.jpg')->resize(200, 200);

// 插入水印, 水印位置在原图片的右下角, 距离下边距 10 像素, 距离右边距 15 像素

$img->insert('images/watermark.png', 'bottom-right', 15, 10);

// 将处理后的图片重新保存到其他路径

$img->save('images/new_avatar.jpg');

/ 上面的逻辑可以通过链式表达式搞定 /

$img = Image::make('images/avatar.jpg')->resize(200, 200)->insert('images/new_avatar.jpg', 'bottom-right', 15, 10);

9.汇集所有一行解决所有问题
//上传并且压缩宽度为800高度自己适应,插入水印并且随机命名保存

$img = Image::make(Input::file('photo'))->resize(800, null, function ($constraint) {$constraint->aspectRatio();})->insert('img/logo.png', 'bottom-right', 15, 10)->save('/uploads/'.date("YmdHis",time()).rand(1000,9999).".png");

10、添加文字/文字水印
使用text方法可以添加文字水印,他还有很多熟悉你可以从官网查看,Demo:

$img->text('The quick brown fox jumps over the lazy dog.', 120, 100);

如果要查看效果就return $img->response('png');一下,修改后要保存需要单独$img->save('1.png');好了,讲到这里,还有几种方法,大家去官方文档看一下吧!

获取Intervention处理后的图片上传到OSS等云存储
由于执行我们的图片处理只有response和response,所以我们操作以前必须要保存一下,然后通过basePath()拿到保存后的路径上传:

$file = $request->file('fileUp');
$img = Image::make($file->getRealPath())->insert('img/logo.png', 'top-left', 15, 15)->save('images/new_avatar.jpg');
# 保存后的路径,用于上传删除
$img->basePath()

官方文档:Intervention Image官方文档

在线留言

免费获取解决方案!

Write here

我们提供的产品解决方案 >>

百度SEO

01 AI万词霸屏

搜狗SEO

02 关键词优化(SEO)

SEO诊断

03 免费SEO诊断

SEO培训

04 SEO营销推广

SEO顾问

05 SEO方案定制

网站降权

06 网站降权恢复

百度SEO

07 整站优化

搜狗SEO

08 微信小程序

SEO诊断

09 微商城开发

SEO培训

10 网站竞价托管

SEO顾问

11 社区团购系统

网站降权

12 积分管理系统

为您推荐