C#读取内存法读取图像的最大灰度值
getPixel方法:
private int getPixels(Bitmap bmpobj) { int[,] data = new int[1920, 1200]; int max = 0; for (int i = 0; i < bmpobj.Height; i++) { for (int j = 0; j < bmpobj.Width; j++) { Color b = bmpobj.GetPixel(j, i); if (max < b.R) { max = b.R; } } } return max; }
内存法:
private int GetImgInfo(Bitmap a) { Bitmap src = new Bitmap(a); int w = src.Width; int h = src.Height; int max = 0; BitmapData srcData = src.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); unsafe { byte* p = (byte*)srcData.Scan0; int gray = 0; for (int j = 1; j < h - 1; j++) { for (int i = 1; i < w - 1; i++) { gray = p[0] ;//+= (p[0] + p[1] + p[2]) / 3; p += 4; if (max < gray) { max = gray; } } p += srcData.Stride - w * 4; } src.UnlockBits(srcData); return max ; } }