2017-03-02 96 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