Соотношение сторон - это просто отношение высоты к ширине * - так как вы можете получить те, которые, я думаю, то, что вы ищете, это просто способ уменьшить их до минимального соотношения.
Это обычное упражнение по математике - вы делите каждое число на их наибольший общий делитель, который является наибольшим числом, которое разделит на оба числа (https://en.wikipedia.org/wiki/Greatest_common_divisor).
В Java есть хороший пример использования рекурсивного деления на модули, здесь вы можете использовать: { ссылка }
Итак, в итоге вы:
- получить высоту и ширину (например, 1500, 500)
- получить их наибольший общий делитель, gcd (500 в этом примере)
- разделить gcd на оба числа и получить ваш аспект коэффициент - это его самые низкие условия (3: 1 в этом примере)
(*) Обновление. На самом деле очень хороший ответ @ llogan включает в себя как SAR, так и DAR аспект rat ios. Примерное форматное соотношение, SAR, является исходным форматным соотношением источника, а Display Aspect Ratio является форматным соотношением видео, как оно предназначено для отображения. Есть и третий термин, который вы можете иногда видеть, это соотношение сторон в пикселях, которое представляет собой DAR, деленное на SAR. Я подозреваю, что это все еще тот DAR, который вас интересует, поэтому подход к высоте и ширине, который вы использовали, по-прежнему применяется.