手機開發實戰148 BMP介紹3

2021-07-13 10:08:30 字數 2922 閱讀 5283

bmp點陣圖和調色盤的概念

我們知道,普通的顯示器螢幕是由許許多多點構成的,我們稱之為象素。顯示時採用掃瞄的方法:電子槍每次從左到右掃瞄一行,為每個象素著色,然後從上到下這樣掃瞄若干行,就掃過了一屏。為了防止閃爍,每秒要重複上述過程幾十次。例如我們常說的螢幕解析度為

640×480

,重新整理頻率為

70hz

,意思是說每行要掃瞄

640個象素,一共有

480行,每秒重複掃瞄螢幕

70次。

我們稱這種顯示器為位映象裝置。所謂位映象,就是指乙個二維的象素矩陣,而位圖就是採用位映象方法顯示和儲存的圖象。

那麼,彩色圖是怎麼回事呢?

我們先來說說三元色

rgb概念。

我們知道,自然界中的所有顏色都可以由紅、綠、藍(r,

g,b)組合而成。有的顏色含有紅色成分多一些,如深紅;有的含有紅色成分少一些,如淺紅。針對含有紅色成分的多少,可以分成0到

255共

256個等級,

0級表示不含紅色成分;

255級表示含有

100%

的紅色成分。同樣,綠色和藍色也被分成

256級。這種分級概念稱為量化。

這樣,根據紅、綠、藍各種不同的組合我們就能表示出

256×256×256

,約1600

萬種顏色。這麼多顏色對於我們人眼來說已經足夠豐富了。 表

1.1 

常見顏色的

rgb組合值

顏色 r

g b

紅 255 0

0 藍

0 255 0

綠 0

0 255 黃

255

255 0

紫 255 0

255 青

0 255

255 白

255

255

255 黑

0 0

0 灰

128

128

128

你大概已經明白了,當一幅圖中每個象素賦予不同的

rgb值時,能呈現出五彩繽紛的顏色了,這樣就形成了彩色圖。的確是這樣的,但實際上的做法還有些差別。

讓我們來看看下面的例子。

有乙個長寬各為

200個象素,顏色數為

16色的彩色圖,每乙個象素都用r、

g、b三個分量表示。因為每個分量有

256個級別,要用8位

(bit)

,即乙個位元組

(byte)

來表示,所以每個象素需要用

3個位元組。整個圖象要用

200×200×3

,約120k

位元組,可不是乙個小數目呀!如果我們用下面的方法,就能省的多。

因為是乙個

16色圖,也就是說這幅圖中最多只有

16種顏色,我們可以用乙個表:表中的每一行記錄一種顏色的r、

g、b值。這樣當我們表示乙個象素的顏色時,只需要指出該顏色是在第幾行,即該顏色在表中的索引值。舉個例子,如果表的第0行為

255,0,

0(紅色

),那麼當某個象素為紅色時,只需要標明

0即可。

讓我們再來計算一下:

16種狀態可以用4位

(bit)

表示,所以乙個象素要用半個位元組。整個圖象要用

200×200×0.5

,約20k

位元組,再加上表占用的位元組為

3×16=48位元組.

整個占用的位元組數約為前面的

1/6,省很多吧? 這張

r、g、

b的表,就是我們常說的調色盤

(palette)

,另一種叫法是顏色查詢表

lut(look up table)

,似乎更確切一些。

windows

點陣圖中便用到了調色盤技術。其實不光是

windows

位圖,許多圖象檔案格式如

pcx、

tif、

gif等都用到了。所以很好地掌握調色盤的概念是十分有用的。

有一種圖,它的顏色數高達

256×256×256

種,也就是說包含我們上述提到的r、

g、b顏色表示方法中所有的顏色,這種圖叫做真彩色圖

(true color)

。真彩色圖並不是說一幅圖包含了所有的顏色,而是說它具有顯示所有顏色的能力,即最多可以包含所有的顏色。表示真彩色圖時,每個象素直接用r、

g、b三個分量位元組表示,而不採用調色盤技術。原因很明顯:如果用調色盤,表示乙個象素也要用

24位,這是因為每種顏色的索引要用24位

(因為總共有

2種顏色,即調色盤有2行

),和直接用r,

g,b三個分量表示用的位元組數一樣,不但沒有任何便宜,還要加上乙個

256×256×256×3

個位元組的大調色盤。所以真彩色圖直接用r、

g、b三個分量表示,它又叫做

24位色圖。

rgb顏色陣列 有關

rgb三色空間我想大家都很熟悉,這裡我想說的是在

windows

下,rgb

顏色陣列儲存的格式其實

bgr。也就是說,對於

24位的

rgb位影象素資料格式是:

藍色b值

綠色g值

紅色r值

對於32位的

rgb位影象素資料格式是:

藍色b值

綠色g值

紅色r值

透明通道a值

透明通道也稱

alpha

通道,該值是該畫素點的透明屬性,取值在

0(全透明)到

255(不透明)之間。對於

24位的影象來說,因為沒有

alpha

通道,故整個影象都不透明。

手機開發實戰139 PIM介紹3

手機發起的到各省 pim平台的資料同步流程 圖a 2 手機發起到各省pim平台 ota同步訊息流程 流程說明如下 1 使用者啟動 pim ota 同步服務 2 同步通訊模組發起 gprs 資料連線請求 3 nas ggsn 傳送計費起始請求 accountingstart 給radius 伺服器 4...

手機開發實戰117 藍芽介紹1

藍芽介紹 簡介 資訊時代最大的特點便是更加方便快速的資訊傳播,正是基於這一點技術人員也在努力開發更加出色的資訊資料傳輸方式。藍芽技術是一種無線資料與語音通訊的開放性全球規範,它以低成本的近距離無線連線為基礎,為固定與移動裝置通訊環境建立乙個特別連線。其程式寫在乙個 9 x 9 mm的微晶元中。藍芽工...

手機開發實戰164 音訊介紹1

數字音訊基礎 把模擬音訊轉成數字音訊,在電腦 裡就稱作取樣,其過程所用到的主要硬體裝置便是模擬 數字轉換器 analog to digital converter 即adc 取樣的過程實際上是將通常的模擬音訊訊號的電訊號轉換成許多稱作 位元 bit 的二進位製碼0和 1,這些0和 1便構成了數字音訊...