午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

BMP位圖淺析

 昵稱54060840 2019-04-19

BMP文件相關(guān)的技術(shù)文檔,網(wǎng)上可以找到太多了,但這些文檔都只適合專業(yè)的人去看,所以我寫(xiě)了這篇貌似菜鳥(niǎo)能看懂的文章,但愿它不只是貌似而已。閱讀本文前最好先看看《顏色的RGB數(shù)字表示方法》。

什么是位圖

計(jì)算機(jī)能以位圖和矢量圖格式顯示圖像。

位圖(Bitmap)圖像又稱點(diǎn)陣圖或光柵圖,它使用我們稱為像素(象素,Pixel)的一格一格的小點(diǎn)來(lái)描述圖像。計(jì)算機(jī)屏幕其實(shí)就是一張包含大量像素點(diǎn)的網(wǎng)格。當(dāng)我們把位圖放大時(shí),每一個(gè)像素小點(diǎn)看上去就像是一個(gè)個(gè)馬賽克色塊。

矢量圖(Vector)使用直線和曲線來(lái)描述圖形,這些圖形的元素是一些點(diǎn)、線、矩形、多邊形、圓和弧線等等,它們都是通過(guò)數(shù)學(xué)公式計(jì)算獲得的。

位圖和矢量圖最簡(jiǎn)單的區(qū)別就是:矢量圖可以無(wú)限放大,而且不會(huì)失真;而位圖則不能。

像Photoshop(PS)這樣主要用于處理位圖的軟件,我們稱之為圖像處理軟件;專門處理矢量圖的軟件,我們稱之為圖形設(shè)計(jì)軟件,例如Adobe Illustrator,CorelDRAW,F(xiàn)lash MX等。

BMP位圖文件

常見(jiàn)的圖像文件格式有:BMP、JPG(JPE,JPEG)、GIF等。

BMP圖像文件(Bitmap-File)格式是Windows采用的圖像文件存儲(chǔ)格式,在Windows環(huán)境下運(yùn)行的所有圖像處理軟件都支持這種格式。Windows 3.0以后的BMP文件都是指設(shè)備無(wú)關(guān)位圖(DIB,device-independent bitmap)。BMP位圖文件默認(rèn)的文件擴(kuò)展名是.BMP,有時(shí)它也會(huì)以.DIB或.RLE作擴(kuò)展名。

創(chuàng)建BMP文件

打開(kāi)Photoshop,新建一個(gè)尺寸為2*3像素的文件。

BMP位圖淺析 - 加菲 -  .

放大圖片到最大(1600%),然后用鉛筆工具對(duì)每個(gè)像素都點(diǎn)一個(gè)不同顏色的點(diǎn),如下圖所示。

BMP位圖淺析 - 加菲 -  .

儲(chǔ)存這個(gè)文件為BMP格式,文件名為“MyBmp.bmp”,在BMP選項(xiàng)中選擇Windows,24位。

BMP位圖淺析 - 加菲 -  .

BMP文件結(jié)構(gòu)

BMP文件由4部分組成:

  1. 位圖文件頭(bitmap-file header)

  2. 位圖信息頭(bitmap-information header)

  3. 顏色表(color table)

  4. 顏色點(diǎn)陣數(shù)據(jù)(bits data)

24位真彩色位圖沒(méi)有顏色表,所以只有1、2、4這三部分。

用UltraEdit打開(kāi)MyBmp.bmp,可以看到這個(gè)文件的全部數(shù)據(jù)如下圖所示:

BMP位圖淺析 - 加菲 -  .

位圖文件頭

位圖文件頭分4部分,共14字節(jié):

名稱占用空間內(nèi)容實(shí)際數(shù)據(jù)
bfType 2字節(jié) 標(biāo)識(shí),就是“BM”二字 BM
bfSize 4字節(jié) 整個(gè)BMP文件的大小 0x50(80)
bfReserved1/2 4字節(jié) 保留字,沒(méi)用 0
bfOffBits 4字節(jié) 偏移數(shù),即 位圖文件頭+位圖信息頭+調(diào)色板 的大小 0x36(54)

注意,Windows的數(shù)據(jù)是倒著念的,這是PC電腦的特色。如果一段數(shù)據(jù)為50 1A 25 3C,倒著念就是3C 25 1A 50,即0x3C251A50。因此,如果bfSize的數(shù)據(jù)為50 00 00 00,實(shí)際上就成了0x00000050,也就是0x50。

BMP位圖淺析 - 加菲 -  .

位圖信息頭

位圖信息頭共40字節(jié):

名稱占用空間內(nèi)容實(shí)際數(shù)據(jù)
biSize 4字節(jié) 位圖信息頭的大小,為40 0x28(40)
biWidth 4字節(jié) 位圖的寬度,單位是像素 2
biHeight 4字節(jié) 位圖的高度,單位是像素 3
biPlanes 2字節(jié) 固定值1 1
biBitCount 2字節(jié) 每個(gè)像素的位數(shù)
1-黑白圖,4-16色,8-256色,24-真彩色
0x18(24)
biCompression 4字節(jié) 壓縮方式,BI_RGB(0)為不壓縮 0
biSizeImage 4字節(jié) 位圖全部像素占用的字節(jié)數(shù),BI_RGB時(shí)可設(shè)為0 0x1A
biXPelsPerMeter 4字節(jié) 水平分辨率(像素/米) 0xB12(2834)
biYPelsPerMeter 4字節(jié) 垂直分辨率(像素/米) 0xB12(2834)
biClrUsed 4字節(jié) 位圖使用的顏色數(shù)
如果為0,則顏色數(shù)為2的biBitCount次方
0
biClrImportant 4字節(jié) 重要的顏色數(shù),0代表所有顏色都重要 0

作為真彩色位圖,我們主要關(guān)心的是biWidth和biHeight這兩個(gè)數(shù)值,兩個(gè)數(shù)值告訴我們圖像的尺寸。biSize,biPlanes,biBitCount這幾個(gè)數(shù)值是固定的。想偷懶的話,其它的數(shù)值可以一律用0來(lái)填充。

BMP位圖淺析 - 加菲 -  .

顏色表

24位真彩色位圖沒(méi)有顏色表。要想在Photoshop中創(chuàng)建有顏色表的BMP圖像,選擇圖像>模式>索引顏色;要想查看顏色表,選擇圖像>模式>顏色表。本文為了簡(jiǎn)化,只討論24位真彩色位圖。

顏色點(diǎn)陣數(shù)據(jù)

位圖全部的像素,是按照自下向上,自左向右的順序排列的。

BMP位圖淺析 - 加菲 -  .

RGB數(shù)據(jù)也是倒著念的,原始數(shù)據(jù)是按B、G、R的順序排列的。

BMP位圖淺析 - 加菲 -  .

你應(yīng)該注意到圖中用黑色框起來(lái)的00 00了,在每行顏色的末尾添加的兩個(gè)0字節(jié),是為了行補(bǔ)位。為什么要行補(bǔ)位呢?因?yàn)?2位的Windows操作系統(tǒng)處理4個(gè)字節(jié)(32位)的速度比較快,所以BMP的每一行顏色占用的字節(jié)數(shù)規(guī)定為4的整數(shù)倍。MyBmp.bmp中一行顏色有兩個(gè)像素,共占用6字節(jié),如果要補(bǔ)齊4*2=8字節(jié),就要再加兩個(gè)0字節(jié)。

行補(bǔ)位的公式為:widthBytes = (width*biBitCount+31)/32*4

Phtoshop在文件的末尾還補(bǔ)充了兩個(gè)0字節(jié),好像是要整體補(bǔ)位。不過(guò)我看過(guò)的BMP資料中都沒(méi)有提到還要整體補(bǔ)位的,其它軟件生成的BMP文件也沒(méi)有整體補(bǔ)位的,這看起來(lái)像是Adobe的獨(dú)創(chuàng),不知道目的何在。

Photoshop和Windows的BMP文件比較

用Photoshop保存的MyBmp.bmp:

BMP位圖淺析 - 加菲 -  .

經(jīng)Windows畫(huà)圖轉(zhuǎn)存過(guò)的BMP文件:

BMP位圖淺析 - 加菲 -  .

可以看出Windows的BMP文件最后少了兩個(gè)0字節(jié),沒(méi)有整體補(bǔ)位。bfSize(文件大小),biSizeImage(全部像素大小)也相應(yīng)地減去2。

相關(guān)資料

BMP文件格式分析 http://wwcz898.blogchina.com/blog/1451283.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多