laravel + intervention/image進行圖片處理

  • 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();

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章