调整图像问题的大小

时间:2013-07-04 21:43:46

标签: java image-resizing

我在调整图片大小时遇到​​问题。

首先,我在1920x1080拍摄了一张照片。用户输入是调整当前图像大小的百分比,例如,当输入为25%时,图像的最终分辨率为960x540。

说明:

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

我已经具有调整图像大小的功能,但我不知道如何计算 WIDTH HEIGHT 以获得调整大小的图像

我的例子是960x540。 (如果它可以帮助你,图像的比例为3:2,4:3,16:9 ....)

有任何帮助吗?

1 个答案:

答案 0 :(得分:4)

您有以下信息:

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

现在,假设您想要在面积缩小到当前大小的25%时计算新的宽度和高度。那么我们知道以下事情:

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)

所以你有

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)

现在您可以在数学上相对容易地解决它。它只是两个带有两个变量的方程式。

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

这有意义吗?