Масштабирование изображений по площади

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

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


person chris vdp    schedule 22.12.2011    source источник


Ответы (2)


Для данной области 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

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

person Amadan    schedule 22.12.2011
comment
И в чем тут проблема? Единственное, что изменится, - это Math.sqrt. И это все еще математический вопрос. - person Amadan; 22.12.2011

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

A = w1 * h1
new_w2 = sqrt(A * (w2 / h2))
new_h2 = A / new_w2
person Ivan Navarrete    schedule 22.12.2011
comment
Думаю, должно быть new_w2 = sqrt (A * (w2 / h2)) - person chris vdp; 22.12.2011