C#實現16進位制顏色和Color之間的轉換
阿新 • • 發佈:2020-09-11
/// <summary> /// color 轉換hex /// </summary> /// <param name="color"></param> /// <returns></returns> public static string ColorToHex(Color color) { int r = Mathf.RoundToInt(color.r * 255.0f); int g = Mathf.RoundToInt(color.g * 255.0f); int b = Mathf.RoundToInt(color.b * 255.0f); int a = Mathf.RoundToInt(color.a * 255.0f); string hex = string.Format("{0:X2}{1:X2}{2:X2}{3:X2}", r, g, b, a); return hex; } /// <summary> /// hex轉換到color /// </summary> /// <param name="hex"></param> /// <returns></returns> public static Color HexToColor(string hex) { byte br = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber); byte bg = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); byte bb = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); byte cc = byte.Parse(hex.Substring(6, 2), System.Globalization.NumberStyles.HexNumber); float r = br / 255f; float g = bg / 255f; float b = bb / 255f; float a = cc / 255f; return new Color(r, g, b, a); }