我正在尝试将0到65536的整数转换为C#中的Color对象。最初,我考虑过创建所有可能的16位颜色的列表,并用整数对其进行寻址,但这效率很低。
如何获得第i个可能的16位Color对象?
16位颜色通常由5位红色,6位绿色和5位蓝色组成:
rrrr rggg gggb bbbb
参考:维基百科:彩色
要将其转换为Color
结构表示的24位颜色,您可以提取颜色分量并将其转换为0..255范围:
int red = color >> 11;
int green = (color >> 5) & 63;
int blue = color & 31;
red = red * 255 / 31;
green = green * 255 / 63;
blue = blue * 255 / 31;
Color result = Color.FromArgb(red, green, blue);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句