关于BitmapData应用的疑惑。请大家帮忙
我要求某一图片的某一区域的灰度值。代码如下byte[,] rgbValue; //图像每一点的灰度值
Rectangle rect = myrect;//要处理的矩形区域 if (bmpImg != null)//如果图片不为null。Bitmap bmpImg { System.Drawing.Imaging.BitmapData bmpData = bmpImg.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, bmpImg.PixelFormat); byte temp = 0; bmpHeight = rect.Height; bmpWidth = rect.Width; rgbValue = new byte[bmpHeight, bmpWidth]; unsafe { byte* ptr = (byte*)(bmpData.Scan0); for (int i = 0; i < bmpHeight; i++)//高度 { for (int j = 0; j < bmpWidth; j++)//宽度 { temp = ptr[0]; //bgr排列 ptr += 1; rgbValue[i, j] = temp;//当前选择的图像每一点的灰度值 }/*重点是这里, 这句话我寻思了好久都没明白是什么意思。 求解. 明白是什么意思的朋友帮忙解释一下 哈~谢啦*/ ptr += bmpData.Stride - bmpWidth; } } bmpImg.UnlockBits(bmpData); }