时间:2010-07-26 04:39:14

标签: algorithm image resize

2 个答案:

答案 0 :(得分:26)

答案 1 :(得分:8)

以下是解决问题的方法:

您知道图像的高度或宽度将等于边界框的高度。

一旦确定哪个尺寸与边界框相等,就可以使用图像的纵横比来计算其他尺寸。

double sourceRatio = sourceImage.Width / sourceImage.Height;
double targetRatio = targetRect.Width / targetRect.Height;

Size finalSize;
if (sourceRatio > targetRatio)
{
    finalSize = new Size(targetRect.Width, targetRect.Width / sourceRatio);
}
else
{
    finalSize = new Size(targetRect.Height * sourceRatio, targetRect.Height);
}