将图像绘制到更大的位图

时间:2010-10-07 18:51:09

标签: c# image drawing bitmap

基本上我想在没有空间或黑色背景的情况下拉伸较小的图像(即300x300到较大的图像,即500x500)。

我有一个位图(比方说宽度为500px,高度为500px)。如何在该位图上绘制另一个(较小的)图像,以便占用整个位图?

我已经知道如何创建位图(即var bitmap = new Bitmap(500, 500);)并获取图像 - 它可以从文件加载(即var image = Image.FromFile(...);)或从其他来源获取。

2 个答案:

答案 0 :(得分:15)

请参阅Graphics.DrawImage的文档。您可以指定源矩形和目标矩形。

示例代码:

Image i = Image.FromFile(fileName); // This is 300x300
Bitmap b = new Bitmap(500, 500);

using(Graphics g = Graphics.FromImage(b))
{
    g.DrawImage(i, 0, 0, 500, 500);
}

要使用代码,请确保添加对System.Drawing程序集的引用,并将using System.Drawing添加到文件中。

答案 1 :(得分:1)

您可以尝试使用以下内容:

public Image ImageZoom(Image image, Size newSize)
{
    var bitmap = new Bitmap(image, newSize.Width, newSize.Height);
    using (var g = Graphics.FromImage(bitmap))
    {
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
    }

    return bitmap;
}

从可用的InterpolationModes中选择一个。