- intervention/image是一個圖片處理的拓展包
- 安裝拓展
composer require intervention/image
- 配置
config/app.php
文件,引入拓展
Intervention\Image\ImageServiceProvider::class,
‘Image’=>Intervention\Image\Facades\Image::class,
php artisan vendor:publish --provider=“Intervention\Image\ImageServiceProviderLaravelRecent”
$img->blur(12);//圖片的模糊度,GD下大量使用影響性能,默認1
$img->brightness(30);//圖片亮度,-100-100,默認0
$img = Image::canvas(32, 32, '#ff0000');//畫圖創建畫板,可添加背景色
$img = Image::canvas(300, 200, '#ddd');
$img->circle(100, 50, 50, function ($draw) {//在圖片裏面畫圓,直徑,x座標,y座標
$draw->background('#0000ff');//背景色
$draw->border(1, '#f00');//圓邊框,與背景色
$img->colorize(-100, 0, 100);//R,G,B調色,【-100,100】
$img->contrast(65);//對比度【-100,100】
});
$img->crop(100, 100, 25, 25);//圖片的裁剪,默認左上角開始裁剪,寬,高,可選x,y座標
$img->destroy();//刪除圖片
$img->save('/222.jpg');//保存圖片
$img->ellipse(20, 30, 20, 30, function ($draw) {//定義橢圓跟圓一致
$draw->background('#0000ff');
$draw->border(1, '#ff0000');
});
$img->encode('jpg', 75);//編碼,只有jpg才能選擇質量,0-100
$img->fill('#ff00ff',0, 0);//填充圖片或顏色,可帶座標,帶座標以該座標點顏色進行選擇填充
$img->flip('h');//圖片翻轉,v上下,h左右
$img->fit(200,300);//修改圖片長寬,按比例,自動裁剪,一個參數正方形
$img->fit(800, 600, function ($constraint) {//按照比例多原始圖片最大修剪
$constraint->upsize();
});
$img->gamma(5);//色彩gamma矯正》0
$imagick = $img->getCore();//返回 gd resource 資源size:寬X高,trueColor
dd($imagick);
$img->greyscale();//將圖片變灰
return $img->height();//圖片高度
$img->heighten(50);
$img->heighten(50, function ($constraint) {
$constraint->upsize();
});//以高爲基準生成比例圖片
$tt= Image::canvas(130,100,'#F60');
$img->insert('public/watermark.png', 'bottom-right', 10, 10);//插入圖片,可選位置模式,默認:top-left ,top,top-right,left,center,right,bottom-left,bottom,bottom-right,可選x,y座標
$img->interlace(true);//編碼相關,true,false
$img->invert();//反轉圖片顏色
$tt = $img->iptc();
$img->limitColors(30);//色彩限制,出現磨砂效果
$img->line(10, 10, 195, 195, function ($draw) {//不支持GD,畫線
$draw->color('#f00');
$draw->width(5);
});
$img->mask($tt,true);
dd($tt);
return $img->mime();//圖片格式 image/jpeg
$img->opacity(90);//透明度0-100,消耗性能
return $img->orientate();
return $img->pickColor(50,50,'hex');//獲取座標顏色,array,rgb,rgba,hex,int
$img->pixel('#0000ff', 32, 32);//指定座標填充色彩
$img->pixelate(2);//像素畫馬賽克
$points = array(
40, 50, // Point 1 (x, y)
20, 110, // Point 2 (x, y)
60, 60, // Point 3 (x, y)
120, 20, // Point 4 (x, y)
50, 40, // Point 5 (x, y)
10, 10 // Point 6 (x, y)
);
$img->polygon($points, function ($draw) {
$draw->background('#0000ff');
$draw->border(1, '#ff0000');
});//座標畫圖,背景和邊框
$img->rectangle(5, 5, 50, 50, function ($draw) {//畫矩形,可選背景色(顏色類型可選rgba,和普通)
$draw->background('rgba(255, 255, 255, 0.5)');
$draw->border(2, '#000');
});
$img->backup();//備份圖片狀態
$img->reset();//圖片恢復到備份狀態
$img->resize(null, 200, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
});//設置圖片的大小,回調可選,可單設置寬,高
$img->resizeCanvas(1280, 720, 'center', false, 'ff00ff');//圖片添加背景畫板,可選位置模式,相對添加,背景色
$img->rotate(-45);//轉動圖片
$img->sharpen(15);//銳化,0-100
$img->stream('jpg', 60);//流編碼
$img->text('foo', 50, 50, function($font) {
$font->file('foo/bar.ttf');
$font->size(72);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(30);
});
$img->text('The quick brown fox jumps over the lazy dog.', 50, 50);
$img->text('foo', 0, 0, function($font) {
$font->color(array(255, 255, 255, 0.5));
});//文字書寫
$img->widen(300, function ($constraint) {
$constraint->upsize();
});//按照寬等比,可回調
return $img->width();//獲取圖片寬
return $img->response('png');//修改圖片格式
- 小例子
$img = Image::canvas(120,90,'#000000');
$img->fill('#b53717');
return $img->response();