我正在使用此程序包http://image.intervention.io/getting_started/installation来压缩上传到我的服务器的图像。但是图像没有被压缩。
首先我安装了干预套餐,把它放在我的 终端:
作曲家需要干预/图像
然后我在控制器顶部添加了这个:
使用Intervention \ Image \ ImageManagerStatic作为图像;
然后我添加了编码以缩小图像
Image :: make(request() - > file('img')) - > encode('jpg',1);
这不会缩小图像。它仍然是相同的大小。
<?php
namespace App\Http\Controllers;
use Intervention\Image\ImageManagerStatic as Image;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
class UploadsController extends Controller
{
public function store()
{
// Get image
$img = request()->file('img');
// Minify image
Image::make($img)->encode('jpg', 1);
// Store image in uploads folder
Storage::disk('public')->put('uploads', $img);
}
}
答案 0 :(得分:1)
很简单:
质量仅在您编码JPG格式时应用,因为PNG压缩是无损的并且不会影响图像质量。默认值:90。
如果您希望此库压缩图片,请使用jpg
。
答案 1 :(得分:0)
好像您只是保存原始图像,而不是调整大小的版本。您可以尝试这样的事情:
public function store()
{
// Get image
$img = request()->file('img');
// Minify image
$resizedImage = Image::make($img)->encode('jpg', 1); // put this in a variable
// use a unique filename
$filename = $img->hashName()
// Store image in uploads folder
Storage::disk('public')->put('uploads/'.$filename, $resizedImage->__toString());
}