Масштабирование изображений в области - PullRequest
0 голосов
/ 22 декабря 2011

Я пытаюсь масштабировать несколько изображений так, чтобы они имели одинаковую площадь, но сохраняли соотношение сторон, но у меня возникают проблемы с поиском формулы для этого.

Кто-нибудь знает формулу?

Ответы [ 2 ]

5 голосов
/ 22 декабря 2011

Для данной области A,

newx * newy = A
newx / newy = oldx / oldy

, что дает вам:

newy = A / newx
newy = newx / (oldx / oldy)

A / newx = newx / (oldx / oldy)
A * oldx / oldy = newx ^ 2

, который затем решает до:

newx = sqrt(A * oldx / oldy)
newy = A / newx

Опять же, это математический вопрос, а не программный ...

3 голосов
/ 22 декабря 2011

Если у вас есть два изображения с размерами (w1, h1) и (w2, h2), и вы хотите масштабировать второе изображение до той же области, что и первое, сохраняя соотношение сторон, то

A = w1 * h1
new_w2 = sqrt(A * (w2 / h2))
new_h2 = A / new_w2
...