如何计算给定图像的比例大小,以确保不超过指定大小

3

我有一个显示图片的区域,最大尺寸为240x180

如果我的图片尺寸为400x423,如何计算出一个新的宽度和高度,使得它最适合放入240x180的框中?(在这种情况下,它将是170x180)


可能是图像调整算法的重复问题。 - GWW
1
可能是小学作业的重复。 - Your Common Sense
我已经投票关闭,因为图像调整算法是重复的(我寻找错误的关键字)。 - Jason
2个回答

4

可能有一些图像库做得不错,但数学很简单。

ratio = orig_x * 1.0 / orig_y;

x_oversized = (orig_x > MAX_X);
y_oversized = (orig_y > MAX_Y);

if (x_oversized OR y_oversized)
{
      new_x = min(MAX_X, ratio * MAX_Y);
      new_y = min(MAX_Y, MAX_X / ratio);
}

1

像这样吗?

$newheight = 180; $newwidth = $width * $newheight / $height;


假设高度是限制维度而不是宽度,这将起作用。 - jon_darkstar
我尝试过这个方法,它只对高度有效,如果受到宽度的限制,它就无法奏效。 - Jason
如果 height / maxheight > width / maxwidth,则进行条件操作。如果为真,则执行上述操作;否则,在上述操作中交换高度和宽度。 - jon_darkstar
我发布的那个应该可以做到,无论您喜欢哪一个。 - jon_darkstar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接