LitDev.Engines.FIP.ColorFiltration C# (CSharp) Method

ColorFiltration() public method

Image color filtration with defined color filter
public ColorFiltration ( Bitmap OriginalImage, string color ) : Bitmap
OriginalImage System.Drawing.Bitmap Original ARGB image
color string Color filter. Available color filters are: Magenta, Yellow, Cyan, Magenta-Yellow, Cyan-Magenta, Yellow-Cyan
return System.Drawing.Bitmap
        public Bitmap ColorFiltration(Bitmap OriginalImage, string color)
        {
            Bitmap OutputImage = new System.Drawing.Bitmap(OriginalImage.Width, OriginalImage.Height);

            if (color != "Magenta" && color != "Yellow" && color != "Cyan" && color != "Magenta-Yellow" && color != "Cyan-Magenta" && color != "Yellow-Cyan")
            {
                throw new Exception("Available color filters are: Magenta, Yellow, Cyan, Magenta-Yellow, Cyan-Magenta, Yellow-Cyan");
            }

            for (int x = 0; x < OriginalImage.Width; x++)
            {
                for (int y = 0; y < OriginalImage.Height; y++)
                {
                    Color pixel = OriginalImage.GetPixel(x, y);

                    int red = pixel.R;
                    int green = pixel.G;
                    int blue = pixel.B;

                    Color newColor;

                    switch (color)
                    {
                        case "Magenta":
                            newColor = Color.FromArgb(255, red, 0, blue);
                            break;

                        case "Yellow":
                            newColor = Color.FromArgb(255, red, green, 0);
                            break;

                        case "Cyan":
                            newColor = Color.FromArgb(255, 0, green, blue);
                            break;

                        case "Magenta-Yellow":
                            newColor = Color.FromArgb(255, red, 0, 0);
                            break;

                        case "Yellow-Cyan":
                            newColor = Color.FromArgb(255, 0, green, 0);
                            break;

                        case "Cyan-Magenta":
                            newColor = Color.FromArgb(255, 0, 0, blue);
                            break;

                        default:
                            newColor = Color.FromArgb(255, red, green, blue);
                            break;

                    }

                    OutputImage.SetPixel(x, y, newColor);
                }
            }

            return OutputImage;
        }