调整图像大小(非宽高比)

时间:2014-02-12 09:19:54

标签: math asp-classic

我想基于总图像尺寸(w * h)调整图像大小 我知道纵横比,但我不是想找到一种基于max_h或max_w调整图像大小的方法。

示例 Image_H = 1000,Image_W = 400; 这使得total_size为1000 * 400 = 400.000。

假设我想将此限制为max_size 100.000,我使用哪个公式?

(我尝试过new_Image_H = Image_H *(max_size / total_size)和new_Image_W = Image_W *(max_size / total_size);但是,这会导致new_Image_H = 250和new_Image_W = 100。 new_Total_size变为25.000而不是100.000。

2 个答案:

答案 0 :(得分:1)

nW - 新图片宽度

nH - 新图像高度

AR - 宽高比

MaxS - 最大面积

所以,让我们想一想:

MaxS = nW * nH

AR = OriginalW / OriginalH = nW / nH

nW = MaxS / nH = MaxS / (nW / AR) = (MaxS * AR) / nW
nW^2 = MaxS / AR
nW = SQR (MaxS / AR) ' SQR means "square root"

根据您的价值观,我们将:

nW = SQR (100000 / 0.4) = 500
nH = AR * nw = 0.4 * 500 = 200

答案 1 :(得分:0)

好的 - 您需要做的就是按百分比计算尺寸,然后应用于宽度和高度:

Dim x, y, ts, alt, p, newX, newY
x = 1000
y = 400
alt = 100000
ts = x * y
p = alt / ts
newX = x * p
newY = y * p

这是那种事吗?