我允许用户在尝试保持图像的原始纵横比的同时调整图像大小。
对于每个调整大小操作,我都有一个“偏移”变量,它指示宽度和高度的变化。这是基于鼠标移动的,因此它可以是值的任意组合,具体取决于它们在调整大小时移动鼠标的程度。
我现在正在做的是取两个值中较大的一个(x 和 y 变化)并使用它来计算相同纵横比的另一个值。这是我的代码:
if (Math.Abs(offset.X) > Math.Abs(offset.Y))
{
offset.Y = (int)(offset.X / AspectRatio);
}
else
{
offset.X = (int)(offset.Y * AspectRatio);
}
纵横比是标准的宽度/高度值。
我的代码的问题是它使用整数值,所以它是四舍五入并导致纵横比扭曲。
我假设我需要做的是捕捉到可以被纵横比整除的整数值,或者为此目的。但我不知道如何通过修改这些 x 和 y “偏移”值来做到这一点。