直接在图像上绘制
本文关键字:绘制 图像 | 更新日期: 2023-09-27 18:35:11
我从WPF开始,我对Winforms有很好的理解。
我要做的是获取一堆图像磁贴并将它们拼接在一起,以创建一个更大的图像,我将在图像控件中显示该图像。
在温福斯我会这样做
Bitmap map = new Bitmap(800,800);
using (Graphics g=Graphics.FromImage(map))
{
for (int x = 0; x<8; x++)
for (int y = 0; y<8; y++)
{
g.DrawImage(bmp[x,y],x*100,y*100);
}
}
pictureBox1.Image=map;
我没有测试这是否会编译,但我希望你能了解我所要求的内容。
我只是在寻找如何做到这一点的基本理解,所以我可以使用它并弄清楚它。
引用 System.Drawing 命名空间
完全按照问题中所述在位图上绘制。
Bitmap map = new Bitmap(800,800);
using (Graphics g=Graphics.FromImage(map))
{
for (int x = 0; x<8; x++)
for (int y = 0; y<8; y++)
{
g.DrawImage(bmp[x,y],x*100,y*100);
}
}
Image.Source=ConvertBitmap(map);
然后使用它将位图转换为位图源
public static BitmapSource ConvertBitmap(System.Drawing.Bitmap source)
{
return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
source.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
}