版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、位圖格式詳解(BitMap)2008101815:25位圖和位圖和BitbltBitblt位圖是一個二維的位數(shù)組,此數(shù)組的每一個元素與圖像的像素一一對應。現(xiàn)實世界的圖像被捕獲以后,圖像被分割成網(wǎng)格,并以像素作為取樣單位。位圖中的每個像素值指明了一個單位網(wǎng)格內圖像的平均顏色。位圖代表了Windows程序中存儲圖像信息的兩種方法之一,另一種形式是元文件。位圖也有兩種:GDI位圖對象和設備無關的位圖(DIB:deviceindependent
2、bitmap)。位圖基礎位圖常用來表示來自真實世界的復雜圖像,元文件更適合于描述由人或者機器生成的圖像。它們都能存于內存或作為文件存于磁盤上,且能通過剪貼板在Windows應用程序間傳輸。位圖和元文件的區(qū)別在于光柵圖像和矢量圖像間的差別。光柵圖像用離散的像素來處理輸出設備;矢量圖像用笛卡爾坐標系統(tǒng)來處理輸出設備,可在其中繪制線和填充對象。位圖的缺點:1、容易受設備依賴性的影響。2、位圖常暗示了特定的顯示分辨率和圖像縱橫比,在縮放后容易出
3、現(xiàn)失真。3、存儲空間大。但位圖具有處理速度快的優(yōu)點。位圖可以手工創(chuàng)建,也可計算機代碼生成,還可由硬件設備把現(xiàn)實世界輸入到計算機,如數(shù)碼相機,它們通常是使用接觸到光就釋放電荷的電荷耦合裝置(CCD:gecoupleddevice)將光的強度轉換為電荷,再用模數(shù)轉換裝置(ADC:Analogtodigital)轉換為數(shù)字再排列為位圖。位圖尺寸位圖呈矩形,具有空間尺寸,以像素為單位度量位圖的高度和寬度。以位于圖像左上角為位圖原點,從0開始計數(shù)
4、。位圖的空間尺寸也指定了其分辨率,但此詞具有爭議,分辨率也指單位長度內的像素數(shù)。位圖是矩形的,但內存是線性的。大多數(shù)位圖按行存儲在內存中,且從頂行像素開始從左到右直到底行結束。位圖還有顏色度量單位:指每個像素所需要的位數(shù),也稱顏色深度(coldepth)、位數(shù)(bitcount)、或位每像素(bpp:bitsperpixel)。每個像素用1位來描述的位圖稱為二級(bilevel)、二色(bicol)或單色(monochrome)位圖。每
5、個像素也可用多位來描述,可以表示的顏色數(shù)等于2的i次方(i為位數(shù))。如何將顏色位的組合與人們所熟識的顏色相對應是處理位圖時經(jīng)常出現(xiàn)的問題。位塊傳送一、BitBlt函數(shù):原樣復制整個視頻顯示器可看作是一幅大位圖,其上的像素由存儲在視頻顯示適配卡上內存中的位來描述。所以,我們可以使用BitBlt函數(shù)來完成將圖像從視頻顯示的一個區(qū)域復制到另一個區(qū)域。這就是位塊傳送(bitblocktranfer)。此函數(shù)是像素移動程序,實際上對像素執(zhí)行了一次
6、位運算操作。BitBlt函數(shù)從稱為“源”的設備描述表中將一個矩形區(qū)的像素傳送到稱為“目標”的另一個設備描述表中相同大小的矩形區(qū)。源和目標設備描述表可以相同。此函數(shù)語法如下:BitBlt(hdcDstxDstyDstcxcyhdcSrcxSrcySrcdwROP)xSrc和ySrc參數(shù)指明了源圖像左上角在源設備描述表中的坐標位置。cx和cy是圖像的寬度和高度。xDst和yDst是圖像復制到的設備描述表中的坐標位置。dwROP是光柵操作符。
7、注意:BitBlt是從實際視頻顯示內存?zhèn)魉拖袼?,也就是說整個顯示屏上的圖像都存于顯存中,若圖像超出了顯示屏,那么BitBlt只傳送在顯示屏上的部分。BitBlt的最大限制是兩個設備描述表必須兼容,就是說兩者的每個像素都具有相同的位數(shù)。所以,不能用它將屏幕上的某些圖形復制到打印機。二、StretchBlt函數(shù):拉伸位圖此函數(shù)語法如下:StretchBlt(hdcDstxDstyDstcxDstcyDsthdcSrcxSrcySrccxSr
8、ccySrcdwROP)BitBlt和StretchBlt函數(shù)中所有的坐標與大小都是基于邏輯單位的。但如果BitBlt函數(shù)中DDB的位格式高度依賴于設備,所以它不適用于圖像交換。DDB內沒有色彩表來指定位圖的位與色彩之間的聯(lián)系,它僅當在Windows會話的生存期內被創(chuàng)建和清除時才有意義。設備無關的位圖(DIB)提供了適用于交換的圖像文件格式。DIB內的位圖幾乎沒有被壓縮,適用于在程序中直接操作。如果在內存中有DIB,就可以提供指向該DI
9、B的指針作為某些函數(shù)的參數(shù),來顯示DIB或把DIB轉化為DDB。DIB文件格式DIB作為一種文件格式,它的擴展名為.BMP,在極少數(shù)的情況下為.DIB。Windows使用的位圖圖像被當作DIB文件創(chuàng)建,并作為只讀資源存儲在程序的可執(zhí)行文件中。程序能將DIB文件減去前14個字節(jié)加載到連續(xù)的內存塊中形成“緊縮DIB(packedDIB)格式的位圖”。程序可以使用緊縮DIB格式,通過Windows剪帖板來交換圖像或創(chuàng)建畫刷,也或完全訪問DIB
10、的內容,并以任意方式修改DIB。一、OS2風格的DIBDIB文件有4個主要的部分:文件頭、信息頭、RGB色彩表(不一定有)和位圖像素位。前兩部分??闯墒且环NC的數(shù)據(jù)結構,第三部分是數(shù)據(jù)結構的數(shù)組。對內存中緊縮的DIB格式只有3個部分,就是缺少文件頭。DIB文件以14個字節(jié)的BITMAPFILEHEADER結構的文件頭開始,指出了文件的類型、文件大小及像素位的偏移量;此后是12個字節(jié)的BITMAPCEHEADER結構,指出了DIB的大小及
11、每像素的位數(shù)。BITMAPCEHEADER結構中的bcBitCount字段一般為1、4、8或24,分別對應2色、16色、256色和全色的DIB。對于前三種BITMAPCEHEADER后緊跟色彩表,對24位DIB,則無色彩表。色彩表是一個RGBTRIPLE結構(此結構每個為3字節(jié)大?。┑臄?shù)組,數(shù)組中的每個元素代表圖像中的每種顏色(指這種圖像由多少種顏色來描述,如8位圖就有256種顏色,這256種顏色就由這個數(shù)組的各個元素來指定,這個數(shù)組的
12、大小就是256)。二、從下向上DIB中的像素位是按水平行組織的,常稱“掃描線”。行數(shù)為BITMAPCEHEADER結構中的bcHeight字段。但DIB從圖像的底行開始,從下往上掃過圖像。所以,在DIB中,圖像的底行是文件的第一行,圖像的頂行是文件的最后一行。這個文件的第一行指的是DIB文件的色彩表后的位圖像素位的第一個像素行,最后一行是位圖像素位的最后一行。三、DIB像素位DIB文件的最后部分由實際的DIB的像素位組成。像素位是由從圖
13、像的底行開始,并沿著圖像向上增長的水平行組織的。DIB中的行數(shù)為BITMAPCEHEADER結構的bcHeight字段,每行的像素數(shù)為該結構的bcWidth字段。每行從最左邊的像素數(shù)開始,直到圖像的右邊。每個像素的位數(shù)可以從bcBitCount字段獲取,為1、4、8或24。1位DIB:每字節(jié)為8像素,最左邊的像素是第一個字節(jié)的最高位,色彩表中有2項。4位DIB:每字節(jié)為2像素,最左邊的像素是第一個字節(jié)的高4位,色彩表中有16項。8位DI
14、B:每字節(jié)為1像素,色彩表中有256項。24位DIB:每3字節(jié)表示1個像素,每個字節(jié)代表紅、綠和藍的顏色值,就可以描述三種顏色的256個值,所以這個DIB無色彩表。四、擴展的WindowsDIB這種DIB格式與前面的格式一樣,以BITMAPFILEHEADER結構開始,但是接著是40字節(jié)的BITMAPINFOHEADER結構,而不是12字節(jié)的BITMAPCEHEADER結構。另一個變化是:對于使用BITMAPINFOHEADER結構的1
15、位、4位和8位DIB,色彩表不是RGBTRIPLE結構的數(shù)組,而是4字節(jié)的RGBQUAD結構的數(shù)組。BITMAPINFOHEADER結構的biClrUsed是非常重要的字段,它影響色彩表中條目的數(shù)量,對于4位和8位的DIB,它能分別指出色彩表的條目數(shù)小于16或256個;對于16位、24位或32位DIB也可以為非0,在這種情況下Windows不使用色彩表來解釋像素位,但它指出DIB中色彩表的大小,程序使用該信息來設置調色板在256顯示器上
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論