public static RGBAW GetRGBAW(Color inp) { var result = new RGBAW(); result.W = (byte)(Math.Min(Math.Min(inp.R, inp.G), inp.B)); int amber = inp.R - result.W; int a2 = (inp.G - result.W) * 2; if (amber > a2) result.A = (byte)a2; else result.A = (byte)amber; result.R = (byte)(inp.R - result.W - result.A); result.G = (byte)(inp.G - result.W - (result.A / 2)); result.B = (byte)(inp.B - result.W); return result; }
public static RGBAW GetRGBAW(Color inp) { var result = new RGBAW(); result.W = (byte)(Math.Min(Math.Min(inp.R, inp.G), inp.B)); int amber = inp.R - result.W; int a2 = (inp.G - result.W) * 2; if (amber > a2) { result.A = (byte)a2; } else { result.A = (byte)amber; } result.R = (byte)(inp.R - result.W - result.A); result.G = (byte)(inp.G - result.W - (result.A / 2)); result.B = (byte)(inp.B - result.W); return(result); }