2

我从 WPF 开始,我对 Winforms 有很好的了解。

我想要做的是获取一堆图像图块并将它们拼接在一起以创建一个更大的图像,我将在图像控件中显示该图像。

在 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;

我没有测试这是否会编译,但我希望你能明白我的要求。

我只是在寻找有关如何执行此操作的基本了解,以便我可以使用它并弄清楚。

4

1 回答 1

0

引用 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);

然后使用它来将 Bitmap 转换为 BitmapSource

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());
    }
于 2012-05-24T20:05:04.760 回答