圖片像素基本知識

圖片由像素組成,例如一張90x40的bmp(位圖),就由90x40個像素組成。每一個像素又由如干位(bit)組成,例如8bit、16bit、24bit,這個就是咱們說的色深。計算機裏的顏色通常用用得最廣泛的RGB(紅、綠、藍)三色組成。如今用一個數值分別表示這三種顏色的亮度,例如範圍爲255,值越小就越黑,值越大就越亮,這樣由3個0~255的數值混合能夠組合成不少種顏色(這個叫作像素值,pixel)。這裏就能夠看到剛剛說範圍是0~255,這樣一種顏色就須要8bit(2^8),3種顏色就是24bit(3x8),這就是咱們日常說的24色深。這樣的顏色組合可以達到2^24=16777216種,已經達到人眼的分辨率極限。可是通常在嵌入式中,通常顯示屏幕達不到這麼高的顏色顯示,如今通常帶GUI的嵌入式產品的主流色深是16bit,就說分給RGB每一個份量的位數不足8bit,這樣有些顏色就會顯示不出來。html

不過你們在用的桌面操做系統的色深是32bit,那除了剛剛說的24bit用於RGB以外,還有8bit是用來幹什麼了咧?32bit的色深還有8bit用來表示alpha通道,這個通道用來表示顏色的透明度(alpha)。在8bit的狀況下,數值越小透明度越高,0表示徹底透明,255表示徹底不透明。你們在網上看到的png格式的圖片就是帶alpha通道的。算法

這裏再說說圖片格式。bmp最高是24bit色深,bmp不帶alpha通道信息,所以bmp自己不帶透明信息。而且bmp是沒有壓縮過的圖片格式,因此通常bmp格式的圖片都比較大(這個很好理解:例如一張1024x768x24bit的bmp大小就是:1024x768x24/8x2^20=2.25MB)。無需外部庫就支持bmp格式圖片(由於直接讀取它的數據就是圖片信息,要否則怎麼叫位圖咧)。動畫

jpg最高也是24bit的,一樣也不帶alpha通道信息,可是這種圖片格式是通過壓縮算法的,因此一樣大小的圖片,jpg格式的能比bmp格式的小得多。須要外部jpeg庫才能支持這樣格式的圖片。ui

png圖片,最高色深32bit,這個是帶alpha通道信息的,並且也是通過壓縮算法的,體檢很小,因此網上那些透明的很好看的圖片通常都是png的(又能夠透明,體積又小)。一樣須要外部png庫才能支持這種格式。spa

gif麼,我不太清楚,它通常是用於動畫的,不過也能夠用來表示靜態圖片(一幀動畫不就是靜態的麼-_-||)。gif也能夠帶alpha通道。操作系統

轉載:http://www.alaiblog.com/minigui/basic-knowledge-of-image-pixels.htmlhtm

相關文章
相關標籤/搜索