Bitmap.LockbitsChaosMSDN参考:[1]http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx#Y1178从链接上先说的第一个参数将“指定要锁定的位图部分”,我将其设置为位图的较小部分(位图为500x500,我的矩形为(0,0,50,50)),但返回的BitmapData的步幅为1500(=500*3),所以基本上每次扫描都是水平扫描整个图像。但是,我想要的只是位图左上角的50x50部分。这是如何运作的?步长将始终是完整的位图,但Scan0属性将根据锁定矩形的起点以及BitmapData的高度和宽度而变化。原因是您仍然需要知道位图的实际位宽才能遍历行(向地址添加步幅)。一个简单的方法是:varbitmap=newBitmap(100,100);vardata=bitmap.LockBits(newRectangle(0,0,10,10),ImageLockMode.ReadWrite,bitmap.PixelFormat);varpt=(byte*)data.Scan0;varbpp=data.Stride/bitmap.Width;for(vary=0;y所以它基本上只是锁定整个位图,但是给你一个指向位图中矩形左上角像素的指针,并适当地设置扫描的宽度和高度。以上是整个C#学习教程内容:Bitmap.Lockbits乱码分享,网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除,转载请注明出处:
