青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

兔子的技術(shù)博客

兔子

   :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

留言簿(10)

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

轉(zhuǎn)自:http://hi.baidu.com/kennlee/blog/item/52375eca63394743f31fe7d8.html

       1. BMP文件組成

  BMP文件由文件頭、位圖信息頭、顏色信息和圖形數(shù)據(jù)四部分組成。文件頭主要包含文件的大小、文件類型、圖像數(shù)據(jù)偏離文件頭的長(zhǎng)度等信息;位圖信息頭包含圖象的尺寸信息、圖像用幾個(gè)比特?cái)?shù)值來表示一個(gè)像素、圖像是否壓縮、圖像所用的顏色數(shù)等信息。顏色信息包含圖像所用到的顏色表,顯示圖像時(shí)需用到這個(gè)顏色表來生成調(diào)色板,但如果圖像為真彩色,既圖像的每個(gè)像素用24個(gè)比特來表示,文件中就沒有這一塊信息,也就不需要操作調(diào)色板。文件中的數(shù)據(jù)塊表示圖像的相應(yīng)的像素值,需要注意的是:圖像的像素值在文件中的存放順序?yàn)閺淖蟮接遥瑥南碌缴希簿褪钦f,在BMP文件中首先存放的是圖像的最后一行像素,最后才存儲(chǔ)圖像的第一行像素,但對(duì)與同一行的像素,則是按照先左邊后右邊的的順序存儲(chǔ)的;另外一個(gè)需要讀者朋友關(guān)注的細(xì)節(jié)是:文件存儲(chǔ)圖像的每一行像素值時(shí),如果存儲(chǔ)該行像素值所占的字節(jié)數(shù)為4的倍數(shù),則正常存儲(chǔ),否則,需要在后端補(bǔ)0,湊足4的倍數(shù)。

  2. BMP文件頭

  BMP文件頭數(shù)據(jù)結(jié)構(gòu)含有BMP文件的類型、文件大小和位圖起始位置等信息。其結(jié)構(gòu)定義如下:

1 typedef struct tagBITMAPFILEHEADER
2 {
3 WORD bfType; // 位圖文件的類型,必須為“BM”
4 DWORD bfSize; // 位圖文件的大小,以字節(jié)為單位
5 WORD bfReserved1; // 位圖文件保留字,必須為0
6 WORD bfReserved2; // 位圖文件保留字,必須為0
7 DWORD bfOffBits; // 位圖數(shù)據(jù)的起始位置,以相對(duì)于位圖文件頭的偏移量表示,以字節(jié)為單位
8 } BITMAPFILEHEADER;該結(jié)構(gòu)占據(jù)14個(gè)字節(jié)。 



  3. 位圖信息頭

  BMP位圖信息頭數(shù)據(jù)用于說明位圖的尺寸等信息。其結(jié)構(gòu)如下:

 1 typedef struct tagBITMAPINFOHEADER{
 2 DWORD biSize; // 本結(jié)構(gòu)所占用字節(jié)數(shù)
 3 LONG biWidth; // 位圖的寬度,以像素為單位
 4 LONG biHeight; // 位圖的高度,以像素為單位
 5 WORD biPlanes; // 目標(biāo)設(shè)備的平面數(shù)不清,必須為1
 6 WORD biBitCount// 每個(gè)像素所需的位數(shù),必須是1(雙色), 4(16色),8(256色)或24(真彩色)之一
 7 DWORD biCompression; // 位圖壓縮類型,必須是 0(不壓縮),1(BI_RLE8壓縮類型)或2(BI_RLE4壓縮類型)之一
 8 DWORD biSizeImage; // 位圖的大小,以字節(jié)為單位
 9 LONG biXPelsPerMeter; // 位圖水平分辨率,每米像素?cái)?shù)
10 LONG biYPelsPerMeter; // 位圖垂直分辨率,每米像素?cái)?shù)
11 DWORD biClrUsed;// 位圖實(shí)際使用的顏色表中的顏色數(shù)
12 DWORD biClrImportant;// 位圖顯示過程中重要的顏色數(shù)
13 } BITMAPINFOHEADER;該結(jié)構(gòu)占據(jù)40個(gè)字節(jié)。 



  注意:對(duì)于BMP文件格式,在處理單色圖像和真彩色圖像的時(shí)候,無論圖象數(shù)據(jù)多么龐大,都不對(duì)圖象數(shù)據(jù)進(jìn)行任何壓縮處理,一般情況下,如果位圖采用壓縮格式,那么16色圖像采用RLE4壓縮算法,256色圖像采用RLE8壓縮算法。

  4. 顏色表

  顏色表用于說明位圖中的顏色,它有若干個(gè)表項(xiàng),每一個(gè)表項(xiàng)是一個(gè)RGBQUAD類型的結(jié)構(gòu),定義一種顏色。RGBQUAD結(jié)構(gòu)的定義如下:

1 typedef struct tagRGBQUAD {
2     BYTErgbBlue;// 藍(lán)色的亮度(值范圍為0-255)
3     BYTErgbGreen; // 綠色的亮度(值范圍為0-255)
4     BYTErgbRed; // 紅色的亮度(值范圍為0-255)
5     BYTErgbReserved;// 保留,必須為0
6 } RGBQUAD; 



  顏色表中RGBQUAD結(jié)構(gòu)數(shù)據(jù)的個(gè)數(shù)由BITMAPINFOHEADER 中的biBitCount項(xiàng)來確定,當(dāng)biBitCount=1,4,8時(shí),分別有2,16,256個(gè)顏色表項(xiàng),當(dāng)biBitCount=24時(shí),圖像為真彩色,圖像中每個(gè)像素的顏色用三個(gè)字節(jié)表示,分別對(duì)應(yīng)R、G、B值,圖像文件沒有顏色表項(xiàng)。位圖信息頭和顏色表組成位圖信息,BITMAPINFO結(jié)構(gòu)定義如下:

1 
2 typedef struct tagBITMAPINFO {
3 BITMAPINFOHEADER bmiHeader; // 位圖信息頭
4 RGBQUAD bmiColors[1]; // 顏色表
5 } BITMAPINFO; 



  注意:RGBQUAD數(shù)據(jù)結(jié)構(gòu)中,增加了一個(gè)保留字段rgbReserved,它不代表任何顏色,必須取固定的值為“0”,同時(shí),RGBQUAD結(jié)構(gòu)中定義的顏色值中,紅色、綠色和藍(lán)色的排列順序與一般真彩色圖像文件的顏色數(shù)據(jù)排列順序恰好相反,既:若某個(gè)位圖中的一個(gè)像素點(diǎn)的顏色的描述為“00,00,ff,00”,則表示該點(diǎn)為紅色,而不是藍(lán)色。

  5. 位圖數(shù)據(jù)

  位圖數(shù)據(jù)記錄了位圖的每一個(gè)像素值或該對(duì)應(yīng)像素的顏色表的索引值,圖像記錄順序是在掃描行內(nèi)是從左到右,掃描行之間是從下到上。這種格式我們又稱為Bottom_Up位圖,當(dāng)然與之相對(duì)的還有Up_Down形式的位圖,它的記錄順序是從上到下的,對(duì)于這種形式的位圖,也不存在壓縮形式。位圖的一個(gè)像素值所占的字節(jié)數(shù):當(dāng)biBitCount=1時(shí),8個(gè)像素占1個(gè)字節(jié);當(dāng)biBitCount=4時(shí),2個(gè)像素占1個(gè)字節(jié);當(dāng)biBitCount=8時(shí),1個(gè)像素占1個(gè)字節(jié);當(dāng)biBitCount=24時(shí),1個(gè)像素占3個(gè)字節(jié),此時(shí)圖像為真彩色圖像。當(dāng)圖像不是為真彩色時(shí),圖像文件中包含顏色表,位圖的數(shù)據(jù)表示對(duì)應(yīng)像素點(diǎn)在顏色表中相應(yīng)的索引值,當(dāng)為真彩色時(shí),每一個(gè)像素用三個(gè)字節(jié)表示圖像相應(yīng)像素點(diǎn)彩色值,每個(gè)字節(jié)分別對(duì)應(yīng)R、G、B分量的值,這時(shí)候圖像文件中沒有顏色表。上面我已經(jīng)講過了,Windows規(guī)定圖像文件中一個(gè)掃描行所占的字節(jié)數(shù)必須是4的倍數(shù)(即以字為單位),不足的以0填充,圖像文件中一個(gè)掃描行所占的字節(jié)數(shù)計(jì)算方法:

 1        DataSizePerLine= (biWidth* biBitCount+31)/8// 一個(gè)掃描行所占的字節(jié)數(shù) 
 2 
 3 或者
 4           DataSizePerLine= (biWidth* biBitCount+31)/32 * 4// 一個(gè)掃描行所占的字節(jié)數(shù) 
 5 
 6 (如果biBitCount == 8 或24) 
 7 
 8          DataSizePerLine= (biWidth* 3+3)/4*4// 一個(gè)掃描行所占的字節(jié)數(shù) 
 9 
10 
11 
12        DataSizePerLine= (biWidth*1+3)/4*4// 一個(gè)掃描行所占的字節(jié)數(shù) 
13 


  位圖數(shù)據(jù)的大小按下式計(jì)算(不壓縮情況下):

  DataSize= DataSizePerLine* biHeight。

  上述是BMP文件格式的說明,搞清楚了以上的結(jié)構(gòu),就可以正確的操作圖像文件,對(duì)它進(jìn)行讀或?qū)懖僮髁恕?br>

posted on 2009-09-27 16:00 會(huì)飛的兔子 閱讀(1522) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 框架/圖像/算法
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蜜臀av在线播放一区二区三区 | 亚洲第一精品影视| 久久免费午夜影院| 亚洲人体1000| 美女视频网站黄色亚洲| 国产欧美精品日韩精品| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲国产精品国自产拍av秋霞| 亚洲欧美在线网| 亚洲国产另类久久久精品极度| 久久爱另类一区二区小说| 国产精品qvod| 亚洲在线免费| 亚洲一级黄色av| 欧美日韩国产不卡| 亚洲日本视频| 亚洲国产精品一区二区尤物区 | 香港成人在线视频| 国产老肥熟一区二区三区| 亚洲欧美一区二区三区极速播放| 日韩亚洲欧美成人一区| 欧美日韩国产在线一区| 亚洲视频 欧洲视频| 99视频热这里只有精品免费| 欧美日韩在线精品| 午夜精品区一区二区三| 亚洲欧美春色| 黄色欧美日韩| 欧美激情第一页xxx| 欧美1区视频| 一区二区三区www| 中文国产成人精品久久一| 国产精品免费网站| 欧美日本不卡| 国产精品九九| 欧美性猛交xxxx乱大交退制版| 一区二区三区回区在观看免费视频| 亚洲日本无吗高清不卡| 欧美午夜片欧美片在线观看| 欧美一区二视频| 欧美在线不卡| 亚洲激情六月丁香| aa亚洲婷婷| 国产一区二区在线观看免费播放| 久久综合国产精品| 欧美人与性禽动交情品| 欧美中在线观看| 美国十次了思思久久精品导航| 一本久久知道综合久久| 亚洲欧美在线看| 亚洲激情一区| 亚洲欧美日韩综合国产aⅴ| 亚洲国产成人在线| 日韩网站免费观看| 黄色一区二区在线观看| 亚洲美女视频网| 激情五月婷婷综合| 夜夜嗨av一区二区三区四季av| 国产一本一道久久香蕉| 日韩一区二区福利| 伊人久久成人| 亚洲一级在线| 亚洲另类黄色| 久久久精品欧美丰满| 亚洲制服丝袜在线| 美日韩免费视频| 久久精品国产99国产精品澳门| 欧美国产日韩二区| 老司机精品视频一区二区三区| 欧美日韩一区二区在线观看 | 日韩午夜av| 亚洲福利视频专区| 午夜老司机精品| 中文欧美字幕免费| 亚洲激情在线播放| 韩国成人理伦片免费播放| 亚洲精品乱码久久久久久黑人| 国内精品久久久久久久97牛牛| 宅男66日本亚洲欧美视频| 亚洲人体影院| 久久综合国产精品| 久久久蜜臀国产一区二区| 国产精品成人一区二区三区吃奶| 亚洲高清三级视频| 在线看国产日韩| 欧美专区日韩专区| 久久精品2019中文字幕| 久久一区二区三区国产精品| 久久er99精品| 国产精品美女午夜av| av成人动漫| 在线一区欧美| 欧美日韩理论| 亚洲精品日韩在线| 一本久道久久综合狠狠爱| 日韩午夜电影| 最新中文字幕一区二区三区| 久久精品欧洲| 美女在线一区二区| 激情久久中文字幕| 久久久美女艺术照精彩视频福利播放| 欧美在线视频免费| 国产伊人精品| 久久久久久网站| 欧美韩国日本综合| 亚洲精品一区二区网址| 欧美巨乳在线观看| 中国成人亚色综合网站| 欧美亚洲一区| 狠狠入ady亚洲精品| 久久深夜福利| 亚洲国产精品尤物yw在线观看 | 在线欧美影院| 嫩草成人www欧美| 亚洲国产成人不卡| 亚洲天堂av电影| 国产人妖伪娘一区91| 欧美一区二区三区视频在线| 久久天天狠狠| 亚洲精品免费在线播放| 欧美日韩一级视频| 亚洲影音先锋| 另类成人小视频在线| 亚洲精品一区二区三区婷婷月| 欧美日韩免费在线视频| 亚洲一本大道在线| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲激情第一区| 国产精品免费小视频| 久久免费午夜影院| 亚洲午夜视频在线| 国产欧美精品| 美女尤物久久精品| 在线视频你懂得一区| 久久久91精品国产| 日韩一级黄色av| 国产欧美日韩| 欧美成人一区在线| 亚洲免费网站| 欧美国产先锋| 性久久久久久久久久久久| 亚洲大胆在线| 国产精品丝袜91| 免费成人高清视频| 亚洲欧美在线一区| 91久久综合亚洲鲁鲁五月天| 欧美在线观看天堂一区二区三区 | 久久综合图片| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产日韩欧美亚洲一区| 欧美精品在线观看一区二区| 久久精品亚洲精品| 亚洲精品一区二区三区不| 久久精品首页| 午夜精品一区二区在线观看 | 日韩一二三区视频| 久久综合成人精品亚洲另类欧美| 亚洲欧美大片| 欧美视频中文一区二区三区在线观看 | 亚洲一区日本| 亚洲一区免费观看| 伊人精品在线| 国内成+人亚洲| 国产精品亚洲成人| 欧美日韩午夜在线视频| 免播放器亚洲| 久久久久久网| 久久激情综合| 午夜视频一区二区| 亚洲小说春色综合另类电影| 亚洲日本在线观看| 亚洲欧洲在线一区| 亚洲国产99| 亚洲精品美女在线| 亚洲激情网站免费观看| 最近看过的日韩成人| 亚洲国语精品自产拍在线观看| 亚洲高清av在线| 亚洲精品国精品久久99热一| 91久久久久久| 亚洲精品日韩一| 99av国产精品欲麻豆| 亚洲精品在线观| 一本色道久久综合| 亚洲天堂av在线免费| 亚洲自拍偷拍色片视频| 亚洲免费视频观看| 久久av老司机精品网站导航| 久久国内精品自在自线400部| 欧美专区亚洲专区| 免费成人毛片| 欧美日韩综合一区| 国产精品毛片a∨一区二区三区|国 | 久久久国产精品一区| 久久麻豆一区二区| 久久久久综合网| 你懂的视频一区二区| 免播放器亚洲一区| 欧美三级电影精品| 国产精品一二一区|