public static bool TryParse(string str, out SKColor color) { if (str == "transparent") { color = SKColor.Empty; return(true); } if (str.StartsWith("rgb(", StringComparison.Ordinal)) { str = str.Substring(4, str.Length - 4).TrimEnd(')'); var values = str.Split(','); var r = int.Parse(values[0]); var g = int.Parse(values[1]); var b = int.Parse(values[2]); str = $"#{r:X2}{g:X2}{b:X2}"; } if (!SKColor.TryParse(str, out color)) { if (HexValues.TryGetValue(str, out var hexString)) { return(SKColor.TryParse(hexString, out color)); } return(false); } return(true); }
public static bool TryParse(string str, out SKColor color) { if (str.StartsWith("rgb(", StringComparison.Ordinal)) { str = str.Substring(4, str.Length - 4).TrimEnd(')'); var values = str.Split(','); var r = Convert.ToInt32(values[0]); var g = Convert.ToInt32(values[1]); var b = Convert.ToInt32(values[2]); str = $"#{r:X2}{g:X2}{b:X2}"; } if (!SKColor.TryParse(str, out color)) { string hexString = null; if (HexValues.TryGetValue(str, out hexString)) { return(SKColor.TryParse(hexString, out color)); } return(false); } return(true); }