Matej Špilár
Matej Špilár

Reputation: 2687

resizing an image issue

I have a problem with resizing an image.

First of all at the start I have an image for example in 1920x1080. The user input is the percentage of resizing the current image, for example when input is 25% the final resolution of the image is 960x540.

Explanation:

1920x1080 = 2 073 600
25% from 2 073 600 = 518 400
960x540 = 518 400

I already have the function for resizing an image , but i dont know how to CALCULATE the values WIDTH and HEIGHT for an resized image.

I the example it is 960x540. (if it can help you, images has ratio 3:2,4:3,16:9 ....)

Any help ?

Upvotes: 1

Views: 171

Answers (1)

Kon
Kon

Reputation: 10810

You have the following information given to you:

width = 1920
height = 1080
area = 2073600
ratio = width / height =~ 1.77778

Now, suppose for example that you want to calculate a new width and height when the area shrinks to 25% of its current size. Well then we know the following things:

area = 0.25 * 2073600 = 518400
height = h (Variable, because it is unknown at the moment)
width = w (Variable, because it is unknown at the moment)

ratio = 1.77778 (Ratio should stay the same or image becomes warped/stretched)

So you have

w / h = 1.77778 (Your unknown new width divided by unknown height equals ratio)
w * h = 518400 (Your unknown width times unknown height equals area)

Now you can solve it relatively easily mathematically. It is simply two equations with two variables.

w = 1.77778 * h (from first equation)
(1.77778 * h) * h) = 518400 (by plugging above into second equation)
h =~ 540
w =~ 960

Does that make sense?

Upvotes: 4

Related Questions