這有必要了解一顏色系統(tǒng)的概念:
RGB:RGB色彩模式是工業(yè)界的一種顏色標(biāo)準(zhǔn),是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標(biāo)準(zhǔn)幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統(tǒng)之一。RGB色彩模式使用RGB模型為圖像中每一個像素的RGB分量分配一個0~255范圍內(nèi)的強度值。RGB圖像只使用三種顏色,就可以使它們按照不同的比例混合,在屏幕上重現(xiàn)16777216(256 * 256 * 256)種顏色。
以下,我們通過幾幅圖來探究RGB的表示原理。
我們可知道,純紅色的RGB為(255,0,0),16進制顏色代碼為#ff0000。
再看,純藍色的RGB為(0,0,255),16進制顏色代碼為#0000ff。
那么,通過上兩圖,我們來推測下純綠色的RGB及16進制顏色代碼為多少呢?
沒錯,G對應(yīng)255,其余R、B為0,即純綠色的RGB為(0,255,0),16進制顏色代碼為#00ff00。
那么是怎么實現(xiàn)RGB>16進制顏色代碼的呢,其中肯定隱藏了什么算法?其實這并沒有想象的那么抽象。
No.1 其實我們通過觀察發(fā)現(xiàn),RGB以逗號隔開三位數(shù)制,而16進制顏色代碼中正好是#+六位數(shù)值。于是我們可假設(shè)RGB中每位數(shù)值對應(yīng)16進制顏色代碼中的兩位,即:
255,0,0 ># ff 00 00
0,0,255 ># ff 00 00
No.2 既然16進制顏色代碼每位都是16進制的,那么RGB的數(shù)值應(yīng)該也有對應(yīng)的進制位,這里我們嘗試把它當(dāng)做10進制數(shù)來試試。
10進制:255 > 16進制:FF
16進制:AA > 10進制:170
16進制:B2 > 10進制:178
觀察到木有?竟然是可以的,那么可以說,以上兩點假設(shè)成立。即RGB及16進制顏色代碼其實就是利用了不同進制位來記數(shù),而通過數(shù)值轉(zhuǎn)換,我們便實現(xiàn)顏色的互通了。