public static Color ToColor3(this float[] src, ColorSpace srcColorSpace, ColorSpace dstColorSpace)
        {
            if (src == null || src.Length < 3)
            {
                Debug.LogWarning("Invalid argument.");
                return(Color.magenta);
            }

            return(new Color(src[0], src[1], src[2], 1f).ConvertColorSpace(srcColorSpace, dstColorSpace));
        }
 private static Color ConvertColorSpace(this Color srcColor, ColorSpace srcColorSpace, ColorSpace dstColorSpace)
 {
     // Need pattern matching :(
     if (srcColorSpace == ColorSpace.sRGB && dstColorSpace == ColorSpace.sRGB)
     {
         return(srcColor);
     }
     else if (srcColorSpace == ColorSpace.sRGB && dstColorSpace == ColorSpace.Linear)
     {
         return(srcColor.linear);
     }
     else if (srcColorSpace == ColorSpace.Linear && dstColorSpace == ColorSpace.sRGB)
     {
         return(srcColor.gamma);
     }
     else if (srcColorSpace == ColorSpace.Linear && dstColorSpace == ColorSpace.Linear)
     {
         return(srcColor);
     }
     else
     {
         throw new ArgumentException();
     }
 }
Example #3
0
 private static Color ToColor(JsonNode node, ColorSpace srcColorSpace, ColorSpace dstColorSpace)
 {
     return(node.ArrayItems().Select(x => ListTreeNodeExtensions.GetSingle(x)).ToArray().ToColor4(srcColorSpace, dstColorSpace));
 }
        public static float[] ToFloat4(this Color src, ColorSpace srcColorSpace, ColorSpace dstColorSpace)
        {
            var dst = src.ConvertColorSpace(srcColorSpace, dstColorSpace);

            return(new float[] { dst.r, dst.g, dst.b, dst.a });
        }
Example #5
0
 static Color ToColor(JsonNode node, ColorSpace srcColorSpace, ColorSpace dstColorSpace)
 {
     return(node.ArrayItems().Select(x => x.GetSingle()).ToArray().ToColor4(srcColorSpace, dstColorSpace));
 }