Как опредедить, что изображение черно-белое - C#
Формулировка задачи:
здравствуйте, как определить,что изображение черно-белое? к примеру у нас есть bitmap:
как узнать,что является ли image.bmp черно-белым?!
Bitmap bmp = new Bitmap("image.bmp");Решение задачи: «Как опредедить, что изображение черно-белое»
textual
Листинг программы
static bool IsGrayImg(Bitmap bmp)
{
BitmapData bd = bmp.LockBits(Rectangle.FromLTRB(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, bmp.PixelFormat);
int bytes = Math.Abs(bd.Stride) * bmp.Height;
byte[] rgbValues = new byte[bytes];
IntPtr ptr = bd.Scan0;// адрес первого пикселя
// копируем значение компонент r,g,b в массив rgbValues
System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);
bool retVal = true;
for (int y = 0; y < rgbValues.Length; y++)
if ((rgbValues[y] != rgbValues[y + 1] || rgbValues[y + 1] != rgbValues[y + 2]))
{
retVal = false;
break;
}
bmp.UnlockBits(bd);
return retVal;
}