Как опредедить, что изображение черно-белое - C#

Узнай цену своей работы

Формулировка задачи:

здравствуйте, как определить,что изображение черно-белое? к примеру у нас есть bitmap:
Bitmap bmp = new Bitmap("image.bmp");
как узнать,что является ли 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;           
          
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы