Мащабиране на изображения до област

Опитвам се да мащабирам куп изображения, така че да имат една и съща площ, но да запазя съотношението им, но имам проблеми с намирането на формула за това.

Някой знае ли формула?


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