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