Laravel 5.1 Intervention Сжатие изображений - PullRequest
0 голосов
/ 11 декабря 2018

Я использую Laravel 5.1 и пакет вмешательства: http://image.intervention.io/

Я пытаюсь сжать мои изображения.Я хотел бы загрузить изображение размером 2,5 МБ и сжать его, уменьшив размер изображения до 700 КБ, сохранив разрешение и качество изображения.Просто уменьшите большой файл изображения до маленького.Загруженное изображение представляет собой файл .jpg

Я использую следующий код:

$targetFolder = public_path().'/images/';
$name=$image->getClientOriginalName();
$extension = $image->getClientOriginalExtension(); // add
$picture = sha1($name . time()) . '.' . $extension; //add

$image->move($targetFolder, $picture);
$image = \Intervention\Image\Facades\Image::make(sprintf('images/%s', $picture))->encode('jpg', 75);

Но размер моего изображения все еще составляет 2,07 МБ

Вопрос в том, какой метод янужно использовать, чтобы получить желаемый результат?

1 Ответ

0 голосов
/ 12 декабря 2018

у вас есть сжатие или уменьшение размера изображения, это будет работать лучше для вас, и это также будет работать для меня, что дает лучшее разрешение после сжатия изображения

$path = public_path().'/public_thumb_photo/';

        File::makeDirectory($path, $mode = 0777, true, true);

        $extension=$request->file('thumb')->getClientOriginalExtension();

        $filename=$request->file('thumb')->getClientOriginalName();

        $imgname ='public_thumb_photo_'.mt_rand(000000,999999) . '.'.$extension;

        $request->file('thumb')->move($path,$imgname);

        $data = getimagesize($path.$imgname);
                    $widths = $data[0];
                    $heights = $data[1];

                     if($widths > 1000 && $heights > 1000)
                    {
                        //dd("demo1");
                        if($widths > 3000 && $heights > 3000)
                        {
                            //dd("demo123");
                            $width = $widths - 1000;    
                            $height = $heights - 1000;
                        }
                        else
                        {
                            //dd("demo 2");
                            $width = $widths - 500;
                            $height = $heights - 500;
                        }

                    }
                    else
                    {
                        //dd("demo 3");
                        $width = $widths - 250;
                        $height = $heights - 250;
                    }


                    Image::make($path.$imgname)->resize($width,$height,function ($constraint) {
                        $constraint->aspectRatio();
                    })->save($path.$imgname,20); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...