開發時遇到的問題,設置圖層樣式時顏色的返回值是uint,一時不知改怎么轉換為C#常用的RGB值了。
一番百度,結果如下:
RGB = R + G * 256 + B * 256 * 256
因此可得到如下反推代碼:
private Color To_RGB(int color) { int b = color / (256 * 256); int g = (color - b * 256 * 256) / 256; int r = color - b * 256 * 256 - g * 256; return Color.FromArgb(r, g, b); }
網上還有位運算的快速算法:
private uint To_uint(Color color) { return (uint)(((uint)color.B << 16) | (ushort)(((ushort)color.G << 8) | color.R)); } private Color To_RGB(int color) { int r = 0xFF & color; int g = 0xFF00 & color; g >>= 8; int b = 0xFF0000 & color; b >>= 16; return Color.FromArgb(r, g, b); }
並看不懂,但是能用。