2017-03-02 24 views
1

是否可以将RGBA颜色表示为类似于视网膜刺激的单个值?我们的想法是这样的:对于黑色更自然的颜色表示法:是否可以将RGBA颜色转换为单个浮点值?

  • 0.0值(无刺激)
  • 1.0白色(全刺激)

在之间的RGBA颜色应该由值表示的是捕捉量刺激它们引起对眼睛等:

  • 很浅的黄色应具有非常高的值
  • 非常DAR k棕色值应该很低

对此有何看法?正在转换为灰度唯一的解决方案?

在此先感谢!

回答

1

将单个数字的特定位分配给RGBA的每个部分以表示您的数字。 如果每个部分都是8位,则可以将前8位分配给R,将后8位分配给G,将第三个8位分配给B,将最后8位分配给A.

假设您的RGBA值是= 15,4,2,1。每个都有4位。 在二进制中,R是1111,G是0100,B是0010,A是0001. 在一个简单的级联中,您的最终数字是1111010000100001,二进制数,即62497.要让G离开这个,62497/256,将它四舍五入到一个整数,然后以16为模。256对于第二个功率是16,因为它是从右边开始的第二个位置(R需要第三个功率,B需要第一个功率)。因为我使用了4位,16是2到4次方。 62497/256 = 244,244%16 = 4.

+0

感谢您的快速回答和随时准备提供帮助。这种编码和解码过程是否抓住了“具有较低值的较暗颜色”和“具有较高值的​​浅颜色”的本质? – thecritter

+0

颜色的多样性取决于使用的位数。这是我所知道的。至少对于Java来说,黑暗与较低的数字有关。 – ProgrammersBlock