如何在Laravel中压缩图像而不调整大小?

我想在laravel上传中保存压缩图像。我找到了一个名为“干预/图像”的软件包。但是它具有调整大小的功能,不能压缩。

lzq0809 回答:如何在Laravel中压缩图像而不调整大小?

您可以简单地做到这一点:

  public function compress($source,$destination,$quality = 75) {
    $info = getimagesize($source);
    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,$quality);
    return $destination;
  }

目标可以与源相同

,
      <form action="{{route('resizeImagePost')}}" method="POST" enctype="multipart/form-data">
      @csrf
      <div class="row">
            <div class="col-md-12">
                <br/>
                <input type="file" name="image" placeholder="image" class ="image">
            </div>
            <div class="col-md-12">
                <br/>
                <button type="submit" class="btn btn-success">Upload Image</button>
            </div>
        </div>
      </form>






   public function resizeImagePost(Request $request)
    {
        $this->validate($request,[
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',]);
        $image = $request->file('image');
        $upload_imagename = time().'.'.$image->getClientOriginalExtension();
        $upload_url = public_path('/images').'/'.$upload_imagename;
        $filename = $this->compress_image($_FILES["image"]["tmp_name"],$upload_url,40);
        return back()
            ->with('success','Image Upload successful');
    }

   public  function compress_image($source_url,$destination_url,$quality) {
        $info = getimagesize($source_url);
            if ($info['mime'] == 'image/jpeg')
                    $image = imagecreatefromjpeg($source_url);
            elseif ($info['mime'] == 'image/gif')
                    $image = imagecreatefromgif($source_url);
            elseif ($info['mime'] == 'image/png')
                    $image = imagecreatefrompng($source_url);
            imagejpeg($image,$quality);
        return $destination_url;
    }
本文链接:https://www.f2er.com/3039813.html

大家都在问