真彩色與偽彩色的概念

2021-07-25 09:54:26 字數 2821 閱讀 7865

真彩色簡介  

真彩色是指影象中的每個畫素

值都分成r、g、b三個基色分量,每個基色分量直接決定其基

色的強度,這樣產生的色彩稱為真彩色。

計算機表示顏色也是用二進位制

。16位色的髮色總數是65536色,也就是2的16次方;24位色被稱為真彩色,它可以達到人眼分辨的極限,髮色數是1677萬多色,也就是2的24次方。但32位色就並非是2的32次方的髮色數,它其實也是1677萬多色,不過它增加了256階顏色的灰度,為了方便稱呼,就規定它為32位色。少量顯示卡能達到36位色,它是24位髮色數再加512階顏色灰度。

至於32位色

和16位色肉眼分辨不出來?其實如果你用兩台品牌型號都一樣的顯示器,分辨調不同的色,就能看出區別,而只是一台機的反覆轉換就比較難分辨出來。如果你用的是windows xp,在windows啟動時有個「歡迎使用」字樣的介面,那裡的蘭色顏色過渡就很容易看出區別,16位色的顏色過渡很容易看出被分層了,不自然;而用32位色就相當柔和,過渡很自然。

真彩色解析

真彩色(麥金塔電腦使用者則為百萬色)影象是一種用三個或更多位元組描述畫素的計算機影象儲存方式。

一般來說,前三個通道都會各用乙個位元組表示,如紅綠藍(rgb)或者藍綠紅(bgr)。如果存在第四個位元組,則表示該影象採用了阿爾法通道。然而,實際系統往往用多於8位 (即1位元組)表達乙個通道,如乙個48位的掃瞄器等。這樣的系統都統稱為真彩色系統。

每一色光以8位元表示,每個通道各有256(28)種階調,三色光互動增減,rgb三色光能在乙個畫素上最高顯示24位1677萬色(256*256*256=16,777,216),這個數值就是電腦所能表示的最高色彩。普遍認為人眼對色彩的分辨能力大致是一千萬色,因此由rgb形成的影象均稱做真彩色。

儘管乙個阿爾法通道只是乙個透明通道,從影象角度來說意義不大,然而這種32位的影象卻在桌面時代大行其道。因為有了alpha通道,在螢幕上描繪半透明影象變得簡單了,(這往往是對繪圖硬體加速裝置的要求)在電腦桌面上能更為輕而易舉地實現半透明視窗、選單漸隱和陰影等效果。

雖然阿爾法通道對於顯示緩衝來說沒有意義,但是在現實系統中仍然使用著 32 位真彩色,這是因為在 32 位的點陣圖中對於畫素的定址更加容易。對 24 位畫素定址需要乘以 3,這樣比通過移位就可以實現的乘以 4 的計算量更大。

以上的解釋都是站在微軟的立場上闡述的,因為其產品視窗系列,即windows作業系統,均以24位色為真彩色。實際上,真彩色也可以是一種不借助於色彩搜尋表(color look-up table,clut)的顯示模式。因此真彩色也可以以各種色彩深度表示(8位,16位,24位……只要不涉及色彩搜尋表)。

真彩色與偽彩色、直接色的區別

描述一幅影象需要使用影象的屬性。影象的屬性包含解析度、畫素深度、真/偽彩色、影象的表示法和種類等。本節介紹前面三個特性。

搞清真彩色、偽彩色與直接色的含義,對於編寫影象顯示程式、理解影象檔案的儲存格式有直接的指導意義,也不會對出現諸如這樣的現象感到困惑:本來是用真彩色表示的影象,但在vga顯示器上顯示的影象顏色卻不是原來影象的顏色。

1. 真彩色(true color)

真彩色是指在組成一幅彩色影象的每個畫素值中,有r,g,b三個基色分量,每個基色分量直接決定顯示裝置的基色強度,這樣產生的彩色稱為真彩色。例如用rgb 5∶5∶5表示的彩色影象,r,g,b各用5位,用r,g,b分量大小的值直接確定三個基色的強度,這樣得到的彩色是真實的原圖彩色。

如果用rgb 8:8:8方式表示一幅彩色影象,就是r,g,b都用8位來表示,每個基色分量佔乙個位元組,共3個位元組,

每個畫素的顏色就是由這3個位元組中的數值直接決定,rgb三色光能在乙個畫素上最高顯示24位1677萬色(256*256*256=16,777,216),這個數值就是電腦所能表示的最高色彩。普遍認為人眼對色彩的分辨能力大致是一千萬色,因此由rgb形成的影象均稱做真彩色。

用3個位元組表示的真彩色影象所需要的儲存空間很大,而人的眼睛是很難分辨出這麼多種顏色的,因此在許多場合往往用rgb 5:5:5來表示,每個彩色分量佔5個位,再加1位顯示屬性控制位共2個位元組,生成的真顏色數目為23*32*32=32768bit = 32k。

在許多場合,真彩色圖通常是指rgb 8:8:8,即影象的顏色數等於224,也常稱為全彩色(full color)影象。但在顯示器上顯示的顏色就不一定是真彩色,要得到真彩色影象需要有真彩色顯示介面卡,目前在pc上用的vga介面卡是很難得到真彩色影象的。

2. 偽彩色(pseudo color)

偽彩色影象的含義是,每個畫素的顏色不是由每個基色分量的數值直接決定,而是把畫素值當作彩色查詢表(color look-up table,clut)的表項入口位址,去查詢乙個顯示影象時使用的r,g,b強度值,用查詢出的r,g,b強度值產生的彩色稱為偽彩色。

彩色查詢表clut是乙個事先做好的表,表項入口位址也稱為索引號。例如16種顏色的查詢表,0號索引對應黑色,... ,15號索引對應白色。彩色影象本身的畫素數值和彩色查詢表的索引號有乙個變換關係,這個關係可以使用windows 95/98定義的變換關係,也可以使用你自己定義的變換關係。使用查詢得到的數值顯示的彩色是真的,但不是影象本身真正的顏色,它沒有完全反映原圖的彩色。

3. 直接色(direct color)

每個畫素值分成r,g,b分量,每個分量作為單獨的索引值對它做變換。也就是通過相應的彩色變換表找出基色強度,用變換後得到的r,g,b強度值產生的彩色稱為直接色。它的特點是對每個基色進行變換。

用這種系統產生顏色與真彩色系統相比,相同之處是都採用r,g,b分量決定基色強度,不同之處是後者的基色強度直接用r,g,b決定,而前者的基色強度由r,g,b經變換後決定。因而這兩種系統產生的顏色就有差別。試驗結果表明,使用直接色在顯示器上顯示的彩色影象看起來真實、很自然。

這種系統與偽彩色系統相比,相同之處是都採用查詢表,不同之處是前者對r,g,b分量分別進行變換,後者是把整個畫素當作查詢表的索引值進行彩色變換。

**:

24 32位真彩色

24 32位真彩色 1.24位定位 dword pixel addr 3 x y lpitch video buffer pixel addr blue video buffer pixel addr 1 green video buffer pixel addr 2 red 知識回顧 lpitch...

真彩色調色盤

執行開始 紅色綠色 藍色黑色 public class frmmain inherits system.windows.forms.form private sub frmmain load byval sender as system.object,byval e as system.eventa...

BMP真彩色轉256色

1.位圖格式 位 件主要分為4個部分組成 檔案頭,資訊頭,調色盤,影象資料。檔案頭 結構定義如下 typedef struct tagbitmapfileheader bitmapfileheader 2.資訊頭 結構定義如下 typedef struct tagbitmapinfoheader b...