Bitmap.LockBits和Graphics.FromImage是否可以在C#中组合使用

时间:2010-02-16 15:24:10

标签: c# graphics bitmap bitmapdata lockbits

你能组合Bitmap.LockBits和Graphics.FromImage的方法,换句话说,如果我有一个位图“bmp”,我想用图形对象g编辑位图,那么字节中的变化是可见的-array of BitmapData.Scan0:

Bitmap bmp = new Bitmap(200,200);
Graphics g = Graphics.FromImage(bmp);
bmp.LockBits(new Rectangle(0,0,200,200),
    ImageLockMode.ReadOnly,PixelFormat.Format32bppArgb);
byte* pixelData = (byte*) (void*) bmd.Scan0;
g.FillRectangle(Brushes.Red,new Rectangle(0,0,50,50));

在填充红色矩形后,我能看到PixelData的变化吗?

1 个答案:

答案 0 :(得分:2)

如果操作不使用相同类型的锁定,则应该能够组合操作,这意味着您应该将兼容的ImageLockMode参数传递给LockBits方法。