public override SKColor GetSKColor(float[] components, float?alpha = null) { var alternateComponents = TintFunction.Calculate(components); ColorSpace alternateSpace = AlternateSpace; return(alternateSpace.GetSKColor(alternateComponents, alpha)); }
public SKColor GetBaseSKColor(float[] color) { int colorIndex = (int)color[0]; if (!baseSKColors.TryGetValue(colorIndex, out var baseColor)) { ColorSpace baseSpace = BaseSpace; int componentCount = BaseSpaceComponentCount; var components = new float[componentCount]; { int componentValueIndex = colorIndex * componentCount; byte[] baseComponentValues = BaseComponentValues; for (int componentIndex = 0; componentIndex < componentCount; componentIndex++) { var byteValue = componentValueIndex < baseComponentValues.Length ? baseComponentValues[componentValueIndex] : 0; var value = ((int)byteValue & 0xff) / 255F; components[componentIndex] = value; componentValueIndex++; } } baseColor = baseSKColors[colorIndex] = baseSpace.GetSKColor(components, null); } return(baseColor); }
public override SKColor GetSKColor(Color color, float?alpha = null) { return(BaseSpace.GetSKColor(GetBaseColor((IndexedColor)color), alpha)); }