缩放图像时,如何确定正确的w / h,以便我不会得到小数

时间:2010-03-06 22:05:40

标签: algorithm image math

假设我有一个非方形图像..

如果我增加宽度并根据增加的宽度(比率)重新计算高度,有时我得到xxx.5(小数)的宽度

例如:宽度= 4,高度= 2 我用1.25倍的宽度增加宽度:宽度= 5 接下来,高度将是:heigth = 2.5

如何确定最接近双面整数的图像格式? (尽可能更大)

由于

2 个答案:

答案 0 :(得分:4)

设g为w和h的http://en.wikipedia.org/wiki/Greatest_common_divisor。下一个最大的图像宽度为w + w / g,高度为h + h / g。您可以使用http://en.wikipedia.org/wiki/Euclidean_algorithm计算g。

答案 1 :(得分:3)

将分数减少到最低项,然后乘以整数。您可以将a/b减少到最低项,方法是将它们除以共同的gcd。如果d = gcd(a,b),那么(a/d) / (b/d)的排名最低。现在,如果你想要具有相同比率的下一个最大整数分数,那么d+1乘以分子和分母。因此,

(d+1) * (a/d)是分子,(d+1) * (b/d)是分母。