Как уменьшить размер файла изображения с помощью вмешательства? - PullRequest
0 голосов
/ 10 июля 2019

Предположим, у меня есть файл изображения, размер которого составляет 400 КБ.Теперь я хочу уменьшить его размер до 200 КБ!

Возможно ли использовать вмешательство в Ларавел?

Если нет, какой метод мне следует использовать?

Пакет изменения размера изображения вмешательства

Ответы [ 3 ]

0 голосов
/ 10 июля 2019

Вы должны попробовать это:

if($request->hasFile('image')) {

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

    $image_resize = Image::make($image->getRealPath());              
    $image_resize->resize(300, 300);
    $image_resize->save(public_path('images/ServiceImages/' .$filename));

}
0 голосов
/ 11 июля 2019

Я использую этот код. это работает для меня.

if ($request->style_img_n != "" ) {
    $file = $request->file('style_img_n');
    $filename = uniqid() . '.' . $file->getClientOriginalExtension();
    $file = Image::make($file)->resize(800, null, function ($constraint) {$constraint->aspectRatio();});
    $locfile= 'assets/files/style/'.$filename;
    $file->save($locfile);
 }

Поддерживает соотношение сторон.

0 голосов
/ 10 июля 2019

попробуйте эту функцию после загрузки изображения

function compress($source, $destination, $quality)
{

    $info = getimagesize($source);
    $image = '';

    if ($info['mime'] == 'image/jpeg')
        $image = imagecreatefromjpeg($source);

    elseif ($info['mime'] == 'image/gif')
        $image = imagecreatefromgif($source);

    elseif ($info['mime'] == 'image/png')
        $image = imagecreatefrompng($source);

    imagejpeg($image, $destination, $quality);

    return $destination;
}

используйте ее следующим образом: compress(path_to_your_image,same_path_to_reolace_it,quality:10->100)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...