Получение цвета пикселя - C#
Формулировка задачи:
Как получить цвет пикселя на изображении?
Этот код работает не правильно.
p.s.
GetPixel не подходит из-за скорости.
Bitmap bmp = new Bitmap(@"C:\2.png"); PixelFormat pxf = PixelFormat.Format24bppRgb; Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, pxf); unsafe { for (int y = 0; y < bmpData.Height; y++) { for (int x = 0; x < bmpData.Width; x++) { byte* p = (byte*)(bmpData.Scan0 + y * bmp.Width + x); int blue = *p; int green = *(p + 1); int red = *(p + 2); } } }
Решение задачи: «Получение цвета пикселя»
textual
Листинг программы
var pxf = PixelFormat.Format24bppRgb; var rect = new Rectangle(0, 0, Bmp.Width, imageHeight); BitmapData bmpData = Bmp.LockBits(rect, ImageLockMode.ReadWrite, pxf); IntPtr ptr = bmpData.Scan0; int numBytes = bmpData.Stride * imageHeight; byte[] rgbValues = new byte[numBytes]; Marshal.Copy(ptr, rgbValues, 0, numBytes); // Делаем что-то с rgbValues
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д