用最小可能的整数分子和分母计算纵横比的公式

formula to calculate aspect ratio with smallest possible integer numerator and denominator

我想获取文件的纵横比(如图像或视频 | widthheight 也是已知的)以尽可能小的 integer 值(整数)表示.

假设文件有一个 width = 300px 和一个 height = 100px,所以宽高比是 3 / 1

但是如果我们有一个 width = 300px 和一个 height = 250px 呢?纵横比为1.2 / 1。但正如我之前所说,我希望 numeratordenominator 都尽可能小 integer 值,在这种特殊情况下为 6 / 5

公式可以直接计算这个还是我必须以编程方式计算?

这取决于您使用的是什么语言,但是如果您可以使用 gcd(最大公约数)访问数学库,它会是这样的

int gcd = gcd(width, height);
int numerator = width / gcd;
int denominator = height / gcd;