Esempio n. 1
0
        private static Bitmap InvertColorPlaneHelper(Bitmap img, InveseVariant variant)
        {
            Bitmap image = new Bitmap(img.Width, img.Height, PixelFormat.Format24bppRgb);

            int[,] resultR = new int[img.Height, img.Width];
            int[,] resultG = new int[img.Height, img.Width];
            int[,] resultB = new int[img.Height, img.Width];

            if (Checks.RGBinput(img))
            {
                List <ArraysListInt> ColorList = Helpers.GetPixels(img);

                switch (variant)
                {
                case InveseVariant.InverseR:
                    resultR = ColorList[0].Color.ConstSubArrayElements(255);
                    resultG = ColorList[1].Color; resultB = ColorList[2].Color;
                    break;

                case InveseVariant.InverseG:
                    resultG = ColorList[1].Color.ConstSubArrayElements(255);
                    resultR = ColorList[0].Color; resultB = ColorList[2].Color;
                    break;

                case InveseVariant.InverseB:
                    resultB = ColorList[2].Color.ConstSubArrayElements(255);
                    resultR = ColorList[0].Color; resultG = ColorList[1].Color;
                    break;

                case InveseVariant.InverseRG:
                    resultR = ColorList[0].Color.ConstSubArrayElements(255);
                    resultG = ColorList[1].Color.ConstSubArrayElements(255);
                    resultB = ColorList[2].Color;
                    break;

                case InveseVariant.InverseRB:
                    resultR = ColorList[0].Color.ConstSubArrayElements(255);
                    resultB = ColorList[2].Color.ConstSubArrayElements(255);
                    resultG = ColorList[1].Color;
                    break;

                case InveseVariant.InverseGB:
                    resultG = ColorList[1].Color.ConstSubArrayElements(255);
                    resultB = ColorList[2].Color.ConstSubArrayElements(255);
                    resultR = ColorList[0].Color;
                    break;

                case InveseVariant.InverseRGB:     //negative
                    resultR = ColorList[0].Color.ConstSubArrayElements(255);
                    resultG = ColorList[1].Color.ConstSubArrayElements(255);
                    resultB = ColorList[2].Color.ConstSubArrayElements(255);
                    break;
                }
            }
            image = Helpers.SetPixels(image, resultR, resultG, resultB);

            return(image);
        }
Esempio n. 2
0
        public static void InvertColorPlane(Bitmap img, InveseVariant variant)
        {
            string ImgExtension = GetImageInfo.Imginfo(Imageinfo.Extension);
            string imgName      = GetImageInfo.Imginfo(Imageinfo.FileName);
            string defPath      = GetImageInfo.MyPath("Rand");

            Bitmap image = new Bitmap(img.Width, img.Height, PixelFormat.Format24bppRgb);

            image = InvertColorPlaneHelper(img, variant);

            string outName = defPath + imgName + "_" + variant.ToString() + ImgExtension;

            Helpers.SaveOptions(image, outName, ImgExtension);
        }
Esempio n. 3
0
 public static Bitmap InvertColorPlaneBitmap(Bitmap img, InveseVariant variant)
 {
     return(InvertColorPlaneHelper(img, variant));
 }