基本上我想在没有空间或黑色背景的情况下拉伸较小的图像(即300x300到较大的图像,即500x500)。
我有一个位图(比方说宽度为500px,高度为500px)。如何在该位图上绘制另一个(较小的)图像,以便占用整个位图?
我已经知道如何创建位图(即var bitmap = new Bitmap(500, 500);
)并获取图像 - 它可以从文件加载(即var image = Image.FromFile(...);
)或从其他来源获取。
答案 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中选择一个。