直接在图像上绘制

本文关键字:绘制 图像 | 更新日期: 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());
    }