0
我正在寻找将图像调整为预定义的最大尺寸,以便在WideImage Library的帮助下保持纵横比。使用WideImage PHP库调整图像大小时保持纵横比
实施例:
最大允许Dimesions:200x200的
输入图像尺寸:安全工程师的标志(1,5:1的纵横比),
电流输出图像尺寸:200×200
预期输出图像尺寸: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 without distortion keeping aspect ratio then crop excess using WideImage
为什么这是低票?如果有什么不明确的话,PLZ会做出解释。我不是专家。 – Purus
我不明白这个问题。来自doc:“默认情况下,调整大小会保持原始图像的纵横比,并且所得图像与内部的给定尺寸相符。”所以$ img-> resize(200,200)就足够了。 – user276648
不会。就像你说的那样。 – Purus