有没有办法从BitmapData创建图形?

时间:2014-12-12 13:24:41

标签: c# graphics gdi+ bitmapdata

我使用 BitmapData 对其执行各种绘图。 现在我想画一些文字 因为我想避免将字符串字体实现为像素转换的复杂性,我想在图形对象上使用可用的 DrawString 方法。

所以我正在寻找一种方法来创建一个工作在我的 BitmapData 设备上的Graphic对象。

我看到有一个 Graphics.FromHdc 方法可用。但是当我将它与 BitmapData Scan0 一起使用时,它会抛出 System.OutOfMemoryException

1 个答案:

答案 0 :(得分:2)

通常,BitmapData对象派生自现有的Bitmap,如下所示:

Bitmap bmp = // insert some way to create your bitmap!
Rectangle rect = new Rectangle(Point.Empty, bmp.Size);

BitmapData BD =  bmp.LockBits(rect , ImageLockMode.ReadWrite,  bmp.PixelFormat);
//  
//  do your pixel stuff here
//
bmp.UnlockBits(BD);

using (Graphics G = Graphics.FromImage(bmp) )
{
    //
    // do your Graphics stuff here
    // 
}