【问题标题】:How can I compress image in Laravel not resize?如何在 Laravel 中压缩图像而不调整大小?
【发布时间】:2019-11-24 22:51:52
【问题描述】:

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

【问题讨论】:

标签: laravel image-compression


【解决方案1】:

你可以这样做:

  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, $destination, $quality);
    return $destination;
  }

目的地可以和来源相同

【讨论】:

    【解决方案2】:
          <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, $destination_url, $quality);
            return $destination_url;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 2018-08-01
      • 2018-02-25
      • 1970-01-01
      相关资源
      最近更新 更多