直接绘制到图像上

时间:2012-05-24 18:56:20

标签: c# wpf

我从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;

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

我只是在寻找对如何做到这一点的基本理解,所以我可以使用它并弄明白。

1 个答案:

答案 0 :(得分:0)

引用System.Drawing命名空间

完全按照问题中的描述在Bitmap上绘图。

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());
    }