Bitmap

Bitmap

使用像素陣列來表示的位圖文件
位圖文件(Bitmap),擴展名可以是.bmp或者.dib。位圖是Windows标準格式圖形文件,它将圖像定義為由點(像素)組成,每個點可以由多種色彩表示,包括2、4、8、16、24和32位色彩。所謂的BitMap就是用一個bit位來标記某個元素所對應的value,而key即是該元素,由于BitMap使用了bit位來存儲數據,因此可以大大節省存儲空間。[1]
    中文名:位圖文件 外文名:Bitmap 所屬品牌: 産品類型: 擴展名:.bmp或者.dib 屬于:Windows标準格式圖形文件

位圖圖像

位圖是位的數組,它制訂了像素矩陣中各像素的顔色。亦稱為點陣圖像或繪制圖像,是由稱作像素(圖片元素)的單個點組成的。這些點可以進行不同的排列和染色以構成圖樣。當放大位圖時,可以看見賴以構成整個圖像的無數單個方塊。擴大位圖尺寸的效果是增多單個像素,從而使線條和形狀顯得參差不齊。然而,如果從稍遠的位置觀看它,位圖圖像的顔色和形狀又顯得是連續的。在體檢時,工作人員會給你一個本子,在這個本子上有一些圖像,而圖像都是由一個個的點組成的,這和位圖圖像其實是差不多的。

由于每一個像素都是單獨染色的,您可以通過以每次一個像素的頻率操作選擇區域而産生近似相片的逼真效果,諸如加深陰影和加重顔色。縮小位圖尺寸也會使原圖變形,因為此舉是通過減少像素來使整個圖像變小的。同樣,由于位圖圖像是以排列的像素集合體形式創建的,所以不能單獨操作(如移動)局部位圖。

位圖文件圖像效果好,但是非壓縮格式的,需要占用較大存儲空間,不利于在網絡上傳送。jpg格式則恰好彌補了位圖文件這個缺點。

bmp格式的文件轉換為jpg格式的文件可以大大減小文件所占存儲空間。最簡單的方法是,用畫圖打開一個bmp格式的圖片,另存為jpg格式的就行了。

分辨率

處理位圖時,輸出圖像的質量決定于處理過程開始時設置的分辨率高低。分辨率是一個籠統的術語,它指一個圖像文件中包含的細節和信息的大小,以及輸入、輸出、或顯示設備能夠産生的細節程度。操作位圖時,分辨率既會影響最後輸出的質量也會影響文件的大小。處理位圖需要三思而後行,因為給圖像選擇的分辨率通常在整個過程中都伴随着文件。無論是在一個300dpi的打印機還是在一個2570dpi的照排設備上印刷位圖文件,文件總是以創建圖像時所設的分辨率大小印刷,除非打印機的分辨率低于圖像的分辨率。如果希望最終輸出看起來和屏幕上顯示的一樣,那麼在開始工作前,就需要了解圖像的分辨率和不同設備分辨率之間的關系。顯然矢量圖就不必考慮這麼多。

RGB

位圖顔色的一種編碼方法,用紅、綠、藍三原色的光學強度來表示一種顔色。這是最常見的位圖編碼方法,可以直接用于屏幕顯示。

CMYK

位圖顔色的一種編碼方法,用青、品紅、黃、黑四種顔料含量來表示一種顔色。常用的位圖編碼方法之一,可以直接用于彩色印刷。

索引顔色

位圖常用的一種壓縮方法。從位圖圖片中選擇最有代表性的若幹種顔色(通常不超過256種)編制成顔色表,然後将圖片中原有顔色用顔色表的索引來表示。這樣原圖片可以被大幅度有損壓縮。适合于壓縮網頁圖形等顔色數較少的圖形,不适合壓縮照片等色彩豐富的圖形。

通道

在原有的圖片編碼方法基礎上,增加像素的透明度信息。圖形處理中,通常把RGB三種顔色信息稱為紅通道、綠通道和藍通道,相應的把透明度稱為Alpha通道。多數使用顔色表的位圖格式都支持Alpha通道。

色彩深度

色彩深度又叫色彩位數,即位圖中要用多少個二進制位來表示每個點的顔色,是分辨率的一個重要指标。常用有1位(單色),2位(4色,CGA),4位(16色,VGA),8位(256色),16位(增強色),24位和32位(真彩色)等。色深16位以上的位圖還可以根據其中分别表示RGB三原色或CMYK四原色(有的還包括Alpha通道)的位數進一步分類,如16位位圖圖片還可分為R5G6B5,R5G5B5X1(有1位不攜帶信息),R5G5B5A1,R4G4B4A4等等。

算法

來自于《編程珠玑》。所謂的Bit-map就是用一個bit位來标記某個元素對應的Value,而Key即是該元素。由于采用了Bit為單位來存儲數據,因此在存儲空間方面,可以大大節省。

如果說了這麼多還沒明白什麼是Bit-map,那麼我們來看一個具體的例子,假設我們要對0-7内的5個元素(4,7,2,5,3)排序(這裡假設這些元素沒有重複)。那麼我們就可以采用Bit-map的方法來達到排序的目的。要表示8個數,我們就隻需要8個Bit(1Bytes),首先我們開辟1Byte的空間,将這些空間的所有Bit位都置為0

然後遍曆這5個元素,首先第一個元素是4,那麼就把4對應的位置為1(可以這樣操作p+(i/8)|(0×01<<(i%8))當然了這裡的操作涉及到Big-ending和Little-ending的情況,這裡默認為Big-ending),因為是從零開始的,所以要把第五位置為1。

然後再處理第二個元素7,将第八位置為1,,接着再處理第三個元素,一直到最後處理完所有的元素,将相應的位置為1。

然後我們現在遍曆一遍Bit區域,将該位是一的位的編号輸出(2,3,4,5,7),這樣就達到了排序的目的。

其實就是把計數排序用的統計數組的每個單位縮小成bit級别的布爾數組

上一篇:ComboBox

下一篇:CAS号

相關詞條

相關搜索

其它詞條