Получение цвета пикселя - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д