public static Bitmap ColorComponentSelector(Bitmap image, GX2CompSel R, GX2CompSel G, GX2CompSel B, GX2CompSel A) { BitmapExtension.ColorSwapFilter color = new BitmapExtension.ColorSwapFilter(); if (R == GX2CompSel.ChannelR) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Red; } if (R == GX2CompSel.ChannelG) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Green; } if (R == GX2CompSel.ChannelB) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Blue; } if (R == GX2CompSel.ChannelA) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Alpha; } if (R == GX2CompSel.Always0) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.One; } if (R == GX2CompSel.Always1) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Zero; } if (G == GX2CompSel.ChannelR) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Red; } if (G == GX2CompSel.ChannelG) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Green; } if (G == GX2CompSel.ChannelB) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Blue; } if (G == GX2CompSel.ChannelA) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Alpha; } if (G == GX2CompSel.Always0) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.One; } if (G == GX2CompSel.Always1) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Zero; } if (B == GX2CompSel.ChannelR) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Red; } if (B == GX2CompSel.ChannelG) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Green; } if (B == GX2CompSel.ChannelB) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Blue; } if (B == GX2CompSel.ChannelA) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Alpha; } if (B == GX2CompSel.Always0) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.One; } if (B == GX2CompSel.Always1) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Zero; } if (A == GX2CompSel.ChannelR) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Red; } if (A == GX2CompSel.ChannelG) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Green; } if (A == GX2CompSel.ChannelB) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Blue; } if (A == GX2CompSel.ChannelA) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Alpha; } if (A == GX2CompSel.Always0) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.One; } if (A == GX2CompSel.Always1) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Zero; } return(BitmapExtension.SwapRGB(image, color)); }
public static Bitmap ColorComponentSelector(Bitmap image, ChannelType R, ChannelType G, ChannelType B, ChannelType A) { BitmapExtension.ColorSwapFilter color = new BitmapExtension.ColorSwapFilter(); if (R == ChannelType.Red) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Red; } if (R == ChannelType.Green) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Green; } if (R == ChannelType.Blue) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Blue; } if (R == ChannelType.Alpha) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Alpha; } if (R == ChannelType.One) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.One; } if (R == ChannelType.Zero) { color.CompRed = BitmapExtension.ColorSwapFilter.Red.Zero; } if (G == ChannelType.Red) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Red; } if (G == ChannelType.Green) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Green; } if (G == ChannelType.Blue) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Blue; } if (G == ChannelType.Alpha) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Alpha; } if (G == ChannelType.One) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.One; } if (G == ChannelType.Zero) { color.CompGreen = BitmapExtension.ColorSwapFilter.Green.Zero; } if (B == ChannelType.Red) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Red; } if (B == ChannelType.Green) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Green; } if (B == ChannelType.Blue) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Blue; } if (B == ChannelType.Alpha) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Alpha; } if (B == ChannelType.One) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.One; } if (B == ChannelType.Zero) { color.CompBlue = BitmapExtension.ColorSwapFilter.Blue.Zero; } if (A == ChannelType.Red) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Red; } if (A == ChannelType.Green) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Green; } if (A == ChannelType.Blue) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Blue; } if (A == ChannelType.Alpha) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Alpha; } if (A == ChannelType.One) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.One; } if (A == ChannelType.Zero) { color.CompAlpha = BitmapExtension.ColorSwapFilter.Alpha.Zero; } return(BitmapExtension.SwapRGB(image, color)); }