将数字转换为颜色

传播

我正在尝试将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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章