我正在上传一张 iPhone 图像(由 iPhone 相机垂直拍摄),尺寸为
2448x3264
,因为这个尺寸太高(?),当我创建 600x360
的拇指时,它会自动旋转到水平位置。
我尝试了什么但没有成功:
fit
功能resize
功能crop
功能upsize
和 aspectRatio
方法height
并在 width
width
并在 height
拇指的最大高度必须为
360
,如果宽度不是600
我也可以。
$imageResize = Image::make($originalFile);
$imageResize->fit(600, 360, function ($constraint)
{
$constraint->upsize();
});
$imageResize->save($thumbPath);
我的目标是:
我怎样才能实现这个目标?
如前所述,图像正在以正确的方向保存,并且在调整大小时,您正在运行
fit()
函数,我可以在该函数上找到 有关此问题的一些信息 与建议一起运行您需要配合使用orientate()
。
这里有一个例子:
$imageResize = Image::make($originalFile);
$imageResize->orientate()
->fit(600, 360, function ($constraint) {
$constraint->upsize();
})
->save($thumbPath);
我很高兴这有帮助。
根据this github issues,您可能需要在
orientate()
之前运行fit()
:
$imageResize = Image::make($originalFile)
->orientate()
->fit(600, 360, function ($constraint) {
$constraint->upsize();
})
->save($thumbPath);
$img = Image::make($originalFile);
$img->orientate();
$img->resize(1024, null, function($constraint){
$constraint->upsize();
$constraint->aspectRatio();
});
$img->save();
上述解决方案将裁剪图像。为了防止这种情况,您可以稍微更改代码:
$imageResize = Image::make($originalFile);
$imageResize->orientate();
$imageResize->resize(600, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($thumbPath);