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

唐吉訶德

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  5 Posts :: 75 Stories :: 3 Comments :: 0 Trackbacks

常用鏈接

留言簿(2)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

1:BMP文件組成
BMP文件由文件頭、位圖信息頭、顏色信息和圖形數據四部分組成。
2:BMP文件頭(14字節)
BMP文件頭數據結構含有BMP文件的類型、文件大小和位圖起始位置等信息。
結構定義如下:
typedef struct tagBITMAPFILEHEADER
{
WORDbf Type; // 位圖文件的類型,必須為BMP(0-1字節)
DWORD bfSize; // 位圖文件的大小,以字節為單位(2-5字節)
WORD bfReserved1; // 位圖文件保留字,必須為0(6-7字節)
WORD bfReserved2; // 位圖文件保留字,必須為0(8-9字節)
DWORD bfOffBits; // 位圖數據的起始位置,以相對于位圖(10-13字節)
// 文件頭的偏移量表示,以字節為單位
} BITMAPFILEHEADER;
3:位圖信息頭(40字節)
BMP位圖信息頭數據用于說明位圖的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本結構所占用字節數(14-17字節)
LONG biWidth; // 位圖的寬度,以像素為單位(18-21字節)
LONG biHeight; // 位圖的高度,以像素為單位(22-25字節)
WORD biPlanes; // 目標設備的級別,必須為1(26-27字節)
WORD biBitCount;// 每個像素所需的位數,必須是1(雙色),(28-29字節)
// 4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; // 位圖壓縮類型,必須是 0(不壓縮),(30-33字節)
// 1(BI_RLE8壓縮類型)或2(BI_RLE4壓縮類型)之一
DWORD biSizeImage; // 位圖的大小,以字節為單位(34-37字節)
LONG biXPelsPerMeter; // 位圖水平分辨率,每米像素數(38-41字節)
LONG biYPelsPerMeter; // 位圖垂直分辨率,每米像素數(42-45字節)
DWORD biClrUsed;// 位圖實際使用的顏色表中的顏色數(46-49字節)
DWORD biClrImportant;// 位圖顯示過程中重要的顏色數(50-53字節)
} BITMAPINFOHEADER;
4:顏色表
顏色表用于說明位圖中的顏色,它有若干個表項,每一個表項是一個RGBQUAD類型的結構,定義一種顏色。RGBQUAD結構的定義如下:
typedef struct tagRGBQUAD {
BYTE rgbBlue;// 藍色的亮度(值范圍為0-255)
BYTE rgbGreen; // 綠色的亮度(值范圍為0-255)
BYTE rgbRed; // 紅色的亮度(值范圍為0-255)
BYTE rgbReserved;// 保留,必須為0
} RGBQUAD;
顏色表中RGBQUAD結構數據的個數有biBitCount來確定:
當biBitCount=1,4,8時,分別有2,16,256個表項;
當biBitCount=24時,沒有顏色表項。
位圖信息頭和顏色表組成位圖信息,BITMAPINFO結構定義如下:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; // 位圖信息頭
RGBQUAD bmiColors[1]; // 顏色表
} BITMAPINFO;
5:位圖數據
位圖數據記錄了位圖的每一個像素值,記錄順序是在掃描行內是從左到右,掃描行之間是從下到上。位圖的一個像素值所占的字節數:
當biBitCount=1時,8個像素占1個字節;
當biBitCount=4時,2個像素占1個字節;
當biBitCount=8時,1個像素占1個字節;
當biBitCount=24時,1個像素占3個字節;
Windows規定一個掃描行所占的字節數必須是
4的倍數(即以long為單位),不足的以0填充,
biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) * bi.biHeight;
具體數據舉例:
如某BMP文件開頭:
4D42 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....
BMP文件可分為四個部分:位圖文件頭、位圖信息頭、彩色板、圖像數據陣列,在上圖中已用*分隔。
一、圖像文件頭
1)1:(這里的數字代表的是"字",即兩個字節,下同)圖像文件頭。0x4D42=’BM’,表示是Windows支持的BMP格式。
2)2-3:整個文件大小。4690 0000,為00009046h=36934。
3)4-5:保留,必須設置為0。
4)6-7:從文件開始到位圖數據之間的偏移量。4600 0000,為00000046h=70,上面的文件頭就是35字=70字節。
二、位圖信息頭
5)8-9:位圖圖信息頭長度。
6)10-11:位圖寬度,以像素為單位。8000 0000,為00000080h=128。
7)12-13:位圖高度,以像素為單位。9000 0000,為00000090h=144。
8)14:位圖的位面數,該值總是1。0100,為0001h=1。
9)15:每個像素的位數。有1(單色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增強型真彩色)。1000為0010h=16。
10)16-17:壓縮說明:有0(不壓縮),1(RLE 8,8位RLE壓縮),2(RLE 4,4位RLE壓縮,3(Bitfields,位域存放)。RLE簡單地說是采用像素數+像素值的方式進行壓縮。T408采用的是位域存放方式,用兩個字節表示一個像素,位域分配為r5b6g5。圖中0300 0000為00000003h=3。
11)18-19:用字節數表示的位圖數據的大小,該數必須是4的倍數,數值上等于(≥位圖寬度的最小的4的倍數)×位圖高度×每個像素位數。0090 0000為00009000h=80×90×2h=36864。
12)20-21:用象素/米表示的水平分辨率。A00F 0000為0000 0FA0h=4000。
13)22-23:用象素/米表示的垂直分辨率。A00F 0000為0000 0FA0h=4000。
14)24-25:位圖使用的顏色索引數。設為0的話,則說明使用所有調色板項。
15)26-27:對圖象顯示有重要影響的顏色索引的數目。如果是0,表示都重要。
三、彩色板
16)28-....(不確定):彩色板規范。對于調色板中的每個表項,用下述方法來描述RGB的值:
1字節用于藍色分量
1字節用于綠色分量
1字節用于紅色分量
1字節用于填充符(設置為0)
對于24-位真彩色圖像就不使用彩色板,因為位圖中的RGB值就代表了每個象素的顏色。
如,彩色板為00F8 0000 E007 0000 1F00 0000 0000 0000,其中:
00FB 0000為FB00h=1111100000000000(二進制),是藍色分量的掩碼。
E007 0000為 07E0h=0000011111100000(二進制),是綠色分量的掩碼。
1F00 0000為001Fh=0000000000011111(二進制),是紅色分量的掩碼。
0000 0000總設置為0。
將掩碼跟像素值進行“與”運算再進行移位操作就可以得到各色分量值。看看掩碼,就可以明白事實上在每個像素值的兩個字節16位中,按從高到低取5、6、5位分別就是r、g、b分量值。取出分量值后把r、g、b值分別乘以8、4、8就可以補齊第個分量為一個字節,再把這三個字節按rgb組合,放入存儲器(同樣要反序),就可以轉換為24位標準BMP格式了。
四、圖像數據陣列
17)27(無調色板)-...:每兩個字節表示一個像素。陣列中的第一個字節表示位圖左下角的象素,而最后一個字節表示位圖右上角的象素。
五、存儲算法
BMP文件通常是不壓縮的,所以它們通常比同一幅圖像的壓縮圖像文件格式要大很多。例如,一個800×600的24位幾乎占據1.4MB空間。因此它們通常不適合在因特網或者其它低速或者有容量限制的媒介上進行傳輸。根據顏色深度的不同,圖像上的一個像素可以用一個或者多個字節表示,它由n/8所確定(n是位深度,1字節包含8個數據位)。圖片瀏覽器等基于字節的ASCII值計算像素的顏色,然后從調色板中讀出相應的值。更為詳細的信息請參閱下面關于位圖文件的部分。 n位2n種顏色的位圖近似字節數可以用下面的公式計算: BMP文件大小約等于 54+4*2的n次方+(w*h*n)/8
,其中高度和寬度都是像素數。需要注意的是上面公式中的54是位圖文件的文件頭,是彩色調色板的大小。另外需要注意的是這是一個近似值,對于n位的位圖圖像來說,盡管可能有最多2n中顏色,一個特定的圖像可能并不會使用這些所有的顏色。由于彩色調色板僅僅定義了圖像所用的顏色,所以實際的彩色調色板將小于。如果想知道這些值是如何得到的,請參考下面文件格式的部分。由于存儲算法本身決定的因素,根據幾個圖像參數的不同計算出的大小與實際的文件大小將會有一些細小的差別。
posted on 2011-02-23 14:12 心羽 閱讀(696) 評論(0)  編輯 收藏 引用 所屬分類: 圖片處理

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            裸体素人女欧美日韩| 亚洲人成在线影院| 亚洲精品国产精品国自产在线| 欧美日韩在线三级| 欧美国产亚洲视频| 国产偷国产偷亚洲高清97cao| 亚洲欧洲综合| 亚洲第一区在线观看| 亚洲一区亚洲| 亚洲女人av| 欧美日韩国产麻豆| 亚洲国产老妈| 在线看视频不卡| 久久久久久久一区二区| 午夜视频在线观看一区二区三区| 欧美日本精品| 亚洲精品在线视频| 亚洲伦伦在线| 欧美国产综合| 亚洲国产成人在线| 亚洲乱码视频| 欧美日本在线播放| 亚洲人成小说网站色在线| 91久久亚洲| 欧美黄色影院| 亚洲精品美女久久久久| 亚洲美女啪啪| 欧美日本亚洲韩国国产| 亚洲经典三级| 一本大道久久a久久精二百| 欧美精品性视频| 亚洲精品欧美精品| 99精品国产在热久久婷婷| 欧美人与性动交cc0o| 99国产精品久久| 性感少妇一区| 国产主播一区二区三区| 久久国产精品亚洲va麻豆| 久久综合久久综合久久| 亚洲国产婷婷香蕉久久久久久99| 你懂的一区二区| 亚洲人体1000| 亚洲一区二区三区精品动漫| 国产精品久久久久久五月尺| 亚洲免费在线视频| 久久五月婷婷丁香社区| 91久久精品美女| 欧美日韩在线观看一区二区三区| 中文av一区二区| 久久精品欧洲| 亚洲人成在线观看一区二区 | 亚洲高清不卡一区| 亚洲精品综合在线| 国产精品免费观看视频| 久久久999国产| 亚洲精品一区在线观看香蕉| 新狼窝色av性久久久久久| 136国产福利精品导航网址应用| 免费国产自线拍一欧美视频| 一区二区三区 在线观看视频| 欧美一区精品| 亚洲免费电影在线| 国产精品亚洲片夜色在线| 久久综合99re88久久爱| 99精品欧美一区二区三区综合在线| 亚洲欧美一区二区三区极速播放 | 巨乳诱惑日韩免费av| 亚洲精品视频免费在线观看| 久久免费午夜影院| 亚洲精品欧美| 午夜综合激情| 日韩视频中文字幕| 国内偷自视频区视频综合| 欧美另类在线播放| 久久久蜜臀国产一区二区| 夜夜嗨一区二区| 欧美成年视频| 欧美一区二区免费观在线| 亚洲精品综合| 亚洲电影av在线| 国产精品资源| 欧美新色视频| 欧美激情一区二区三区在线视频观看| 西西人体一区二区| 一区二区欧美日韩视频| 欧美激情国产日韩| 老司机免费视频久久| 亚洲欧美在线磁力| 99视频在线观看一区三区| 国产综合久久| 国产色综合网| 国产麻豆精品久久一二三| 欧美破处大片在线视频| 免费日韩av| 乱中年女人伦av一区二区| 欧美亚洲综合另类| 午夜国产精品影院在线观看| 日韩视频一区二区三区| 亚洲国产精品久久91精品| 乱码第一页成人| 狼人社综合社区| 久久婷婷久久一区二区三区| 欧美一区二区三区免费观看视频 | 久久精品理论片| 欧美一区在线看| 午夜精品视频一区| 午夜精品久久久久久久99樱桃 | av不卡在线看| 99精品热6080yy久久 | 久久精品av麻豆的观看方式| 亚洲欧美日韩一区二区| 亚洲综合色激情五月| 亚洲在线一区| 午夜精彩国产免费不卡不顿大片| 亚洲一区二区精品在线观看| 亚洲视频在线免费观看| 亚洲在线视频网站| 欧美伊人久久久久久久久影院| 亚洲欧美日韩另类精品一区二区三区| 亚洲婷婷综合久久一本伊一区| 亚洲一二三区在线观看| 亚洲欧美激情一区| 欧美在线在线| 久久婷婷国产综合精品青草 | 欧美成人按摩| 亚洲黄色一区| 亚洲视频一区二区免费在线观看| 亚洲欧美视频在线观看| 欧美一区二区三区在线| 久久美女艺术照精彩视频福利播放| 久久综合九色综合欧美狠狠| 欧美成人免费在线| 国产精品久在线观看| 国产伦精品一区二区三区照片91 | 中文av一区特黄| 小黄鸭精品aⅴ导航网站入口| 先锋影音国产精品| 乱码第一页成人| 亚洲人成亚洲人成在线观看图片| 一区二区三区色| 久久久国产精彩视频美女艺术照福利| 久久综合伊人77777蜜臀| 欧美区在线观看| 国产一区二区三区在线观看免费 | 久久噜噜噜精品国产亚洲综合| 欧美黄在线观看| 在线综合+亚洲+欧美中文字幕| 久久av资源网| 欧美日韩国产首页| 国内外成人在线| 在线一区欧美| 麻豆9191精品国产| 中文国产成人精品| 麻豆国产va免费精品高清在线| 国产精品va在线| 91久久久久久久久久久久久| 亚洲欧美综合一区| 亚洲国产欧美不卡在线观看| 亚洲欧美久久久| 欧美激情综合| 国内免费精品永久在线视频| 中文在线一区| 亚洲第一精品福利| 午夜宅男欧美| 欧美午夜免费影院| 亚洲精品久久7777| 久久久91精品国产一区二区三区| 亚洲美女色禁图| 久久影视精品| 国产亚洲欧美一区| 亚洲一区二区三区视频播放| 亚洲国产成人一区| 久久久久久久一区二区三区| 国产精品成人观看视频国产奇米| 亚洲激情校园春色| 久久综合电影| 午夜视频一区二区| 国产精品日韩欧美一区二区| 亚洲精品一区二区在线观看| 久久婷婷国产麻豆91天堂| 午夜欧美大尺度福利影院在线看| 欧美日韩免费精品| 日韩亚洲国产精品| 欧美激情视频一区二区三区不卡| 欧美影院成年免费版| 国产精品亚洲欧美| 午夜视频精品| 亚洲一二三区精品| 国产精品久久久久久久7电影| 一区二区三区四区国产精品| 亚洲黄色尤物视频| 欧美国产欧美综合| 亚洲精品中文字幕有码专区| 亚洲高清色综合| 欧美黑人国产人伦爽爽爽| 亚洲日本免费电影| 最新国产乱人伦偷精品免费网站| 欧美高清不卡| 一区二区三区免费观看| 日韩视频一区二区三区在线播放|