在.NET中将图像缩放到固定大小的画布

时间:2011-07-27 12:02:03

标签: .net graphics scaling system.drawing

我有一个固定大小的画布(例如演示幻灯片)。需要在没有任何质量失真的情况下将图片嵌入其中。如果图像小于画布,则必须居中。如果它更大,则必须按比例缩小以适应。

是否存在任何可靠的算法,或者我必须从头开始创建它?

1 个答案:

答案 0 :(得分:0)

您需要的缩放只是

scale = desired size / actual size

为避免扭曲,您可以对高度和宽度应用相同的比例。

为了确保您获得正确的尺寸,您可以使用它找到最长的尺寸和比例,以便您的代码成为:

if (height > width)
{
    scale = desiredHeight / actualHeight;
}
else
{
    scale = desiredWidth / actualWidth;
}

确保已将高度和宽度转换为double值以避免整数运算。