static void Main(string[] args) { System.Drawing.Color c1 = System.Drawing.Color.FromName("Blue"); Console.Write("c1.ToString() = "); Console.WriteLine(c1.ToString()); object o1 = c1; System.Drawing.Color c3 = (System.Drawing.Color)o1; Console.Write("((System.Drawing.Color)(object)c1).ToString() = "); Console.WriteLine(c3.ToString()); int n = c1.ToArgb(); Console.Write("c1.ToArgb() = "); Console.WriteLine(n); uint n1 = (uint)n; Console.Write("(uint)c1.ToArgb() = "); Console.WriteLine(n1); Energy.Base.Color x = (Energy.Base.Color)(uint) c1.ToArgb(); var html = x.ToString(); Console.Write("(string)(Energy.Base.Color) = "); Console.WriteLine(html); Energy.Base.Color x1 = new Energy.Base.Color((uint)c1.ToArgb()); var html1 = x1.ToString(); Console.Write("new Energy.Base.Color((uint)c.ToArgb()) = "); Console.WriteLine(html1); Console.ReadLine(); }
/// <summary> /// Represent color as HTML value /// </summary> /// <param name="color">Color</param> /// <returns>CSS string</returns> public static string ColorToHtml(Energy.Base.Color color) { byte[] rgb = new byte[3] { color.R, color.G, color.B }; return("#" + Hex.ArrayToHex(rgb).ToLower()); }
/// <summary> /// Color transition /// </summary> /// <param name="color_1">System.Drawing.Color</param> /// <param name="color_2">System.Drawing.Color</param> /// <param name="percentage">double</param> /// <returns>System.Drawing.Color</returns> public static Energy.Base.Color ColorTransition(Energy.Base.Color color_1, Energy.Base.Color color_2, double percentage) { byte a, r, g, b; if (percentage == 0) { return(color_1); } if (percentage < 0) { Energy.Base.Color c = color_1; color_1 = color_2; color_2 = c; percentage = -percentage; } if (percentage > 1) { percentage = percentage / 100; } if (percentage > 1) { percentage = 1; } a = (byte)((int)(double)(percentage * color_1.A + (1 - percentage) * color_2.A) % 0x100); r = (byte)((int)(double)(percentage * color_1.R + (1 - percentage) * color_2.R) % 0x100); g = (byte)((int)(double)(percentage * color_1.G + (1 - percentage) * color_2.G) % 0x100); b = (byte)((int)(double)(percentage * color_1.B + (1 - percentage) * color_2.B) % 0x100); return(new Color(a, r, g, b)); }
public void ColorToString() { Energy.Base.Color c1 = "#333"; string s1 = (string)c1; Debug.WriteLine(s1); Assert.AreEqual("#333333", s1); Energy.Base.Color c2 = "#ccc"; string s2 = (string)c2; Debug.WriteLine(s2); Assert.AreEqual("#cccccc", s2); Energy.Base.Color c3 = Energy.Base.Color.ColorTransition(c1, c2, 0.5); string s3 = (string)c3; Debug.WriteLine(s3); Assert.AreEqual("#7f7f7f", s3); }