我使用 BitmapData 对其执行各种绘图。 现在我想画一些文字 因为我想避免将字符串字体实现为像素转换的复杂性,我想在图形对象上使用可用的 DrawString 方法。
所以我正在寻找一种方法来创建一个工作在我的 BitmapData 设备上的Graphic对象。
我看到有一个 Graphics.FromHdc 方法可用。但是当我将它与 BitmapData 的 Scan0 一起使用时,它会抛出 System.OutOfMemoryException 。
答案 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
//
}