1
我遇到了Lockbits的問題。我正在搜索黑色像素,並且由於它看起來不正確,我使用WindowPopup來打印每個像素的顏色,但它就像我的程序正在使用另一張圖像。使用Lockbits來搜索黑色像素,但是這是隨機的嗎?
alt text http://i208.photobucket.com/albums/bb91/Savaronna/pixel-1.jpg?t=1234874238
標誌着我第一個找到的黑色像素的紅色。正如你所看到的,還有其他幾個像素也應該匹配。我究竟做錯了什麼?
這是我的劇本,我負責的東西嗎?
Bitmap b = this.TableListBMP;
BitmapData bmpData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height),
ImageLockMode.ReadWrite,
PixelFormat.Format32bppPArgb);
int stride = bmpData.Stride;
IntPtr Scan0 = bmpData.Scan0;
unsafe
{
byte * p = (byte *)(void *)Scan0;
int nOffset = bmpData.Stride - b.Width*4;
int xOffset, yOffset;
for(int y=5; y<b.Height; ++y)
{
for(int x=1; x<b.Width; ++x)
{
MessageBox.Show(
string.Format("x={0}, y={1}, ARGB={2},{3},{4},{5}",
x, y,
Convert.ToString(p[(y*stride)+(x*4)]),
Convert.ToString(p[(y*stride)+(x*4)+1]),
Convert.ToString(p[(y*stride)+(x*4)+2]),
Convert.ToString(p[(y*stride)+(x*4)+3])));
p +=4;
}
// EDIT: This line should be removed
p += nOffset;
}
}
b.UnlockBits(bmpData);
只是想讓你知道,我刪除了p + =部分,它的工作原理。 感謝您的幫助 – Sven 2009-02-17 16:32:12