如何使用 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
我正在使用 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