如何使用 Laravel 在 Intervention Image 包中设置图像大小和尺寸

How to set image size and dimension in Intervention Image package using Laravel

我正在使用 Intervention Image 包来处理上传的图像,然后再将其保存到服务器。我已经成功地设置了图像的尺寸,并且工作正常,但我想修复图像大小,即生成的图像应该小于等于 30KB 并且应该只有 300 dpi 的分辨率。

这是我用来调整上传图片大小的代码:

$file = $post->file('profile_image');

$filename = Carbon::now()->timestamp.'_'.$file->getClientOriginalName();

\Image::make($file->getRealPath())->resize(160, 160)->save('uploads/profile/'.$filename);

如果我的问题可以通过Intervention Image包实现,请给我一个解决方案。

提前致谢。

你可以试试这个

$size = 160;
$img = \Image::make($file->getRealPath())->resize($size, $size)->save('uploads/profile/'.$filename);
while($img->filesize() < "someAmount"){
    $size = (int)$size - 20; // adjust based on your need
    $img = \Image::make($file->getRealPath())->resize($size, $size)->save('uploads/profile/'.$filename);
}

NOTE this is not correct answer but it is idea to solve this problem