当我上传400KB的图像时,它最终得到1.3MB
$project = Project::findOrFail($project_id);
$image_type = 'project_thumbnail';
$destinationPath = 'assets/images/projects/'.$project_id;
$filename = $request->file->getClientOriginalName();
$filename = time().'_'.$filename;
$extension = $request->file->getClientOriginalExtension();
$photo = $request->file->move($destinationPath, $filename);
$photo= Image::make($destinationPath.'/'.$filename);
$photo->resize(1024, 683, function ($constraint) {
$constraint->aspectRatio();
})->save();
$media = new \App\Media(['type'=>$image_type, 'filename'=>$filename, 'path'=>$destinationPath.'/'.$filename, 'thumbnail_path'=>$destinationPath.'/'.$filename,'extension'=>$extension]);
$project->media()->save($media);
return 1;
但是,如果我上传1.3MB图像文件,它根本不会改变
提前谢谢你。
EDIT1
我试过
$photo->resize(null, function ($constraint) {
$constraint->aspectRatio();
})->save();
也
$photo= Image::make($destinationPath.'/'.$filename)->save();
// $photo->resize(1024, 683, function ($constraint) {
// $constraint->aspectRatio();
// })->save();
但似乎没什么用。
答案 0 :(得分:1)
看起来您在保存之前正在调整图像大小。
$photo->resize(1024, 683, function ($constraint) {
$constraint->aspectRatio();
})->save();
调整大小会改变图像的大小。
所以可能会发生这样的情况:您的初始图像(400KB)的分辨率小于1024.然后您将分辨率更改为1024,这会将其大小增加到1.3MB。
然后你上传了已经有1024分辨率的1.3MB图像,因此它不会被resize()
改变,并且它的大小保持不变,并且还有1.3MB。