Exemple #1
0
        public override SKColor GetSKColor(float[] components, float?alpha = null)
        {
            var        alternateComponents = TintFunction.Calculate(components);
            ColorSpace alternateSpace      = AlternateSpace;

            return(alternateSpace.GetSKColor(alternateComponents, alpha));
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 public override SKColor GetSKColor(Color color, float?alpha = null)
 {
     return(BaseSpace.GetSKColor(GetBaseColor((IndexedColor)color), alpha));
 }