Как изменить цвета изображения в C#: подробное руководство

В этой записи блога мы рассмотрим различные методы изменения цветов изображения с помощью C#. Если вы хотите применить определенный цветовой фильтр, настроить оттенок и насыщенность или преобразовать изображение в оттенки серого, мы вам поможем. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять и реализовать функции изменения цвета в ваших проектах C#. Итак, приступим!

Методы изменения цветов изображения:

  1. Использование пространства имен System.Drawing:

    • Метод: ColorMatrix
    • Пример кода:
      using System.Drawing;
      using System.Drawing.Imaging;
      public static Bitmap ChangeImageColor(Bitmap originalImage, ColorMatrix colorMatrix)
      {
       Bitmap newImage = new Bitmap(originalImage.Width, originalImage.Height);
       using (Graphics graphics = Graphics.FromImage(newImage))
       {
           ImageAttributes attributes = new ImageAttributes();
           attributes.SetColorMatrix(colorMatrix);
           graphics.DrawImage(originalImage, new Rectangle(0, 0, originalImage.Width, originalImage.Height), 0, 0, originalImage.Width, originalImage.Height, GraphicsUnit.Pixel, attributes);
       }
       return newImage;
      }
  2. Использование библиотеки Emgu.CV:

    • Метод: CvInvoke.CvtColor
    • Пример кода:
      using Emgu.CV;
      using Emgu.CV.CvEnum;
      using Emgu.CV.Structure;
      public static Image<Bgr, byte> ChangeImageColor(Image<Bgr, byte> originalImage, ColorConversion conversion)
      {
       Image<Bgr, byte> newImage = originalImage.Convert<Bgr, byte>();
       CvInvoke.CvtColor(originalImage, newImage, conversion);
       return newImage;
      }
  3. Использование библиотеки Magick.NET:

    • Метод: Image.Colorize
    • Пример кода:
      using ImageMagick;
      public static MagickImage ChangeImageColor(MagickImage originalImage, MagickColor targetColor)
      {
       MagickImage newImage = originalImage.Clone();
       newImage.Colorize(targetColor);
       return newImage;
      }

В этой статье мы рассмотрели несколько методов изменения цветов изображения в C#. Независимо от того, предпочитаете ли вы использовать встроенное пространство имен System.Drawing, библиотеку Emgu.CV или библиотеку Magick.NET, теперь у вас есть множество вариантов, соответствующих потребностям вашего проекта. Не стесняйтесь экспериментировать с этими методами и настраивать их в соответствии со своими требованиями. Повысить визуальную привлекательность ваших изображений еще никогда не было так просто!