0

我有以下内容:

using (bmp == new Bitmap(50, 50)) {
    using (g == Graphics.FromImage(bmp)) {
        g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic;
        g.DrawImage(img, 0, 0, 50, 50);
    }
}

用户为我的应用程序提供了一个图像,我的应用程序必须调整其大小并使其适合整个图像。

上面代码的问题是它拉伸了图像,不适合(因为 4:3 电影适合宽屏电视留下黑条)。

有没有人对此有任何解决方案?另外,我宁愿不使用 GDI。

4

1 回答 1

1

您需要考虑输入图像的大小。这是一个代码片段,可以让您进入正确的方向:

int x1 = 0, y1 = 0, x2 = 50, y2 = 50;
if (img. Width <= img.Height) 
{
   // compute x1, y1 to fit img horizontally into bmp
}
else
{
   // compute y1, y2 to fit img vertically into bmp
}

g.DrawImage(img, x1,y1, x2,y2);

另请注意,您要求在 WPF 中调整图像大小,但使用的是 System.Drawing,后者在后台使用 GDI+。

于 2013-07-21T20:30:46.503 回答