我希望在 WideImage 库的帮助下将图像调整为预定义的最大尺寸,以保持纵横比。
例子:
最大允许尺寸:200x200
输入图像尺寸:300x200 徽标(1,5:1 纵横比),
当前输出图像尺寸:200x200
预期输出图像尺寸:200x133(1,5:1 纵横比)。
目前,图像会随着纵横比的改变而失真。应该做些什么来保持该纵横比?
我正在使用下面的代码。
$targetWidth = 200;
$targetHeight = 200;
$sourceRatio = $sourceWidth / $sourceHeight;
$targetRatio = $targetWidth / $targetHeight;
if ( $sourceRatio < $targetRatio ) {
$scale = $sourceWidth / $targetWidth;
} else {
$scale = $sourceHeight / $targetHeight;
}
$resizeWidth = (int)($sourceWidth / $scale);
$resizeHeight = (int)($sourceHeight / $scale);
$img->resize($resizeWidth, $resizeHeight)
PS:我从 Resize image 中得到了上述逻辑,没有失真保持纵横比,然后使用 WideImage 裁剪多余的