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); }
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); }
public static Bitmap InvertColorPlaneBitmap(Bitmap img, InveseVariant variant) { return(InvertColorPlaneHelper(img, variant)); }