如何通过干预减少图像文件的大小?

时间:2019-07-10 10:45:02

标签: laravel image-resizing intervention

假设我有一个大小为400 KB的图像文件。现在,我想将其大小减小到200 KB!

可以使用laravel干预吗?

如果不是,我应该采用哪种方法?

干预图像调整大小包

3 个答案:

答案 0 :(得分:0)

上传图片后尝试使用此功能

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)

答案 1 :(得分:0)

您应该尝试以下操作:

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

}

答案 2 :(得分:0)

我已使用此代码。这对我有用。

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);
 }

它保持宽高比。