找漂亮的圖片素材,盡在圖片資訊網
當前位置:首頁 » 高清圖片 » bmp圖片是什麼
擴展閱讀
吃完羊肉搞笑圖片 2025-07-05 09:45:33
抖音圖片格式多少寸 2025-07-05 09:30:10
中國司法高清圖片 2025-07-05 09:25:45

bmp圖片是什麼

發布時間: 2022-12-06 02:10:07

❶ bmp是什麼文件格式

bmp是一種圖片格式,可以用電腦自帶的照片查看器或畫圖軟體打開,演示電腦系統版本為windows7,具體操作請參照以下步驟。

1、首先在電腦上找到目標bmp格式的文件,用滑鼠選中。

❷ bmp是什麼格式的圖片

BMP簡介:
BMP是一種與硬體設備無關的圖像文件格式,使用非常廣。它採用位映射存儲格式,除了圖像深度可選以外,不採用其他任何壓縮,因此,BMP文件所佔用的空間很大。BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。
由於BMP文件格式是Windows環境中交換與圖有關的數據的一種標准,因此在Windows環境中運行的圖形圖像軟體都支持BMP圖像格式。
[編輯本段]文件結構:
典型的BMP圖像文件由四部分組成:
1:點陣圖文件頭數據結構,它包含BMP圖像文件的類型、顯示內容等信息;
2:點陣圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息;
3:調色板,這個部分是可選的,有些點陣圖需要調色板,有些點陣圖,比如真彩色圖(24位的BMP)就不需要調色板;
4:點陣圖數據,這部分的內容根據BMP點陣圖使用的位數不同而不同,在24點陣圖中直接使用RGB,而其他的小於24位的使用調色板中顏色索引值。
點陣圖的類型:
點陣圖一共有兩種類型,即:設備相關點陣圖(DDB)和設備無關點陣圖(DIB)。DDB點陣圖在早期的Windows系統(Windows
3.0以前)中是很普遍的,事實上它也是唯一的。然而,隨著顯示器製造技術的進步,以及顯示設備的多樣化,DDB點陣圖的一些固有的問題開始浮現出來了。比如,它不能夠存儲(或者說獲取)創建這張圖片的原始設備的解析度,這樣,應用程序就不能快速的判斷客戶機的顯示設備是否適合顯示這張圖片。為了解決這一難題,微軟創建了DIB點陣圖格式。

❸ bmp是什麼格式 bmp介紹

1、bmp是一種圖像文件格式,與常見圖像格式不同的是bmp屬於典型的點陣圖格式。bmp採用位映射存儲格式,除了圖像深度可選以外,不採用其他任何壓縮。因此,通常bmp文件所佔用的空間較大,只在某些特定場合會用到bmp這種圖片格式。

2、這種格式的特點是包含的圖像信息較豐富,幾乎不進行壓縮,但由此導致了它與生俱生來的缺點--佔用磁碟空間過大。所以,目前BMP在單機上比較流行。

❹ bmp是什麼格式的圖片

bmp格式的圖片是windows自帶的"畫圖"軟體,點"開始菜單"找到"程序"找到"附件"然後找到"畫圖".就是這個自帶的畫圖軟體保存成的圖片格式,可以用專業的圖像處理編輯軟體photoshop進行圖片格式的轉換,photoshop默認的保存類型是.psd,在保存時選擇bmp格式即可

❺ 什麼是BMP圖象

bmp是點陣圖格式,是windows使用的圖片格式
原來是什麼格式,用PHOTOSHOP或者AUTOCAD或者ACDSEE打開後,選另存為,有BMP選項的
1、什麼是BMP圖片:
BMP是bitmap的縮寫,即為點陣圖圖片。點陣圖圖片是用一種稱作「像素」的單位存貯圖像信息的。這些「像素」其實就是一些整齊排列的彩色(或黑白)點,如果這些點被慢慢放大,您就會看到一個個的「像素」中添充著自己的顏色,這些「像素」整齊地排列起來,就成為了一幅BMP圖片,並以.bmp(.rle,.dib等)為擴展名

❻ BMP是什麼文件格式,如何打開BMP文件

BMP是一種圖片格式,可以通過電腦自帶的圖片查看器或繪圖軟體打開,演示電腦系統的版本與windows7類似。

詳情請參考以下步驟:

1.首先,找到目標BMP格式的文件在您的計算機上使用滑鼠並選擇它。

❼ BmP是什麼

bmp是一種與硬體設備無關的圖像文件格式,因此在幾乎所有圖像軟體都支持bmp圖像格式,而且軟體能夠非常快速的讀取bmp文件格式的圖片,這也是bmp格式圖片的優勢所在。典型的bmp圖像文件由三部分組成:點陣圖文件頭數據結構,它包含bmp圖像文件的類型、顯示內容等信息;點陣圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息。

❽ 什麼是BMP圖片

BMP是一種與硬體設備無關的圖像文件格式,使用非常廣。它採用位映射存儲格式,除了圖像深度可選以外,不採用其他任何壓縮,因此,BMP文件所佔用的空間很大。BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。
由於BMP文件格式是Windows環境中交換與圖有關的數據的一種標准,因此在Windows環境中運行的圖形圖像軟體都支持BMP圖像格式。 [編輯本段]文件結構:典型的BMP圖像文件由四部分組成:
1:點陣圖文件頭數據結構,它包含BMP圖像文件的類型、顯示內容等信息;
2:點陣圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息;
3:調色板,這個部分是可選的,有些點陣圖需要調色板,有些點陣圖,比如真彩色圖(24位的BMP)就不需要調色板;
4:點陣圖數據,這部分的內容根據BMP點陣圖使用的位數不同而不同,在24點陣圖中直接使用RGB,而其他的小於24位的使用調色板中顏色索引值。
點陣圖的類型:
點陣圖一共有兩種類型,即:設備相關點陣圖(DDB)和設備無關點陣圖(DIB)。DDB點陣圖在早期的Windows系統(Windows 3.0以前)中是很普遍的,事實上它也是唯一的。然而,隨著顯示器製造技術的進步,以及顯示設備的多樣化,DDB點陣圖的一些固有的問題開始浮現出來了。比如,它不能夠存儲(或者說獲取)創建這張圖片的原始設備的解析度,這樣,應用程序就不能快速的判斷客戶機的顯示設備是否適合顯示這張圖片。為了解決這一難題,微軟創建了DIB點陣圖格式。
設備無關點陣圖 (Device-Independent Bitmap)
DIB點陣圖包含下列的顏色和尺寸信息:
* 原始設備(即創建圖片的設備)的顏色格式。
* 原始設備的解析度。
* 原始設備的調色板
* 一個位數組,由紅、綠、藍(RGB)三個值代表一個像素。
* 一個數組壓縮標志,用於表明數據的壓縮方案(如果需要的話)。
以上這些信息保存在BITMAPINFO結構中,該結構由BITMAPINFOHEADER結構和兩個或更多個RGBQUAD結構所組成。BITMAPINFOHEADER結構所包含的成員表明了圖像的尺寸、原始設備的顏色格式、以及數據壓縮方案等信息。RGBQUAD結構標識了像素所用到的顏色數據。
DIB點陣圖也有兩種形式,即:底到上型DIB(bottom-up),和頂到下型DIB(top-down)。底到上型DIB的原點(origin)在圖像的左下角,而頂到下型DIB的原點在圖像的左上角。如果DIB的高度值(由BITMAPINFOHEADER結構中的biHeight成員標識)是一個正值,那麼就表明這個DIB是一個底到上型DIB,如果高度值是一個負值,那麼它就是一個頂到下型DIB。注意:頂到下型的DIB點陣圖是不能被壓縮的。
點陣圖的顏色格式是通過顏色面板值(planes)和顏色位值(bitcount)計算得來的,顏色面板值永遠是1,而顏色位值則可以是1、4、8、16、24、32其中的一個。如果它是1,則表示點陣圖是一張單色點陣圖(譯者註:通常是黑白點陣圖,只有黑和白兩種顏色,當然它也可以是任意兩種指定的顏色),如果它是4,則表示這是一張VGA點陣圖,如果它是8、16、24、或是32,則表示該點陣圖是其他設備所產生的點陣圖。如果應用程序想獲取當前顯示設備(或列印機)的顏色位值(或稱位深度),可調用API函數GetDeviceCaps(),並將第二個參數設為BITSPIXEL即可。
顯示設備的解析度是以每米多少個像素來表明的,應用程序可以通過以下三個步驟來獲取顯示設備或列印機的水平解析度:
1. 調用GetDeviceCaps()函數,指定第二個參數為HORZRES。
2. 再次調用GetDeviceCaps()函數,指定第二個參數為HORZSIZE。
3. 用第一個返回值除以第二個返回值。即:DetDeviceCaps(hDC,HORZRES)/GetDeviceCaps(hDC,HORZSIZE);
應用程序也可以使用相同的三個步驟來獲取設備的垂直解析度,不同之處只是要將HORZRES替換為VERTRES,把HORZSIZE替換為VERTSIZE,即可。
調色板是被保存在一個RGBQUAD結構的數組中,該結構指出了每一種顏色的紅、綠、藍的分量值。位數組中的每一個索引都對應於一個調色板項(即一個RGBQUAD結構),應用程序將根據這種對應關系,將像素索引值轉換為像素RGB值(真實的像素顏色)。應用程序也可以通過調用GetDeviceCaps()函數來獲取當前顯示設備的調色板尺寸(將該函數的第二個參數設為NUMCOLORS即可)。
Win32 API支持位數據的壓縮(只對8位和4位的底到上型DIB點陣圖)。壓縮方法是採用運行長度編碼方案(RLE),RLE使用兩個位元組來描述一個句法,第一個位元組表示重復像素的個數,第二個位元組表示重復像素的索引值。有關壓縮點陣圖的詳細信息請參見對BITMAPINFOHEADER結構的解釋。
應用程序可以從一個DDB點陣圖創建出一個DIB點陣圖,步驟是,先初始化一些必要的結構,然後再調用GetDIBits()函數。不過,有些顯示設備有可能不支持這個函數,你可以通過調用GetDeviceCaps()函數來確定一下(GetDeviceCaps()函數在調用時指定RC_DI_BITMAP作為RASTERCAPS的標志)。
應用程序可以用DIB去設置顯示設備上的像素(譯者註:也就是顯示DIB),方法是調用SetDIBitsToDevice()函數或調用StretchDIBits()函數。同樣,有些顯示設備也有可能不支持以上這兩個函數,這時你可以指定RC_DIBTODEV作為RASTERCAPS標志,然後調用GetDeviceCaps()函數來判斷該設備是否支持SetDIBitsToDevice()函數。也可以指定RC_STRETCHDIB作為RASTERCAPS標志來調用GetDeviceCaps()函數,來判斷該設備是否支持StretchDIBits()函數。
如果應用程序只是要簡單的顯示一個已經存在的DIB點陣圖,那麼它只要調用SetDIBitsToDevice()函數就可以。比如一個電子表格軟體,它可以打開一個圖表文件,在窗口中簡單的調用SetDIBitsToDevice()函數,將圖形顯示在窗口中。但如果應用程序要重復的繪制點陣圖的話,則應該使用BitBlt()函數,因為BitBlt()函數的執行速度要比SetDIBitsToDevice()函數快很多。
設備相關點陣圖 (Device-Dependent Bitmaps)
設備相關點陣圖(DDB)之所以現在還被系統支持,只是為了兼容舊的Windows 3.0軟體,如果程序員現在要開發一個與點陣圖有關的程序,則應該盡量使用或生成DIB格式的點陣圖。
DDB點陣圖是被一個單個結構BITMAP所描述,這個結構的成員標明了該點陣圖的寬度、高度、設備的顏色格式等信息。
DDB點陣圖也有兩種類型,即:可廢棄的(discardable)DDB和不可廢棄的(nondiscardable)DDB。可廢棄的DDB點陣圖就是一種當系統內存缺乏,並且該點陣圖也沒有被選入設備描述表(DC)的時候,系統就會把該DDB點陣圖從內存中清除(即廢棄)。不可廢棄的DDB則是無論系統內存多少都不會被系統清除的DDB。API函數CreateDiscardableBitmap()函數可用於創建可廢棄點陣圖。而函數CreateBitmap()、CreateCompatibleBitmap()、和CreateBitmapIndirect()可用於創建不可廢棄的點陣圖。
應用程序可以通過一個DIB點陣圖而創建一個DDB點陣圖,只要先初始化一些必要的結構,然後再調用CreateDIBitmap()函數就可以。如果在調用該函數時指定了CBM_INIT標志,那麼這一次調用就等價於先調用CreateCompatibleBitmap()創建當前設備格式的DDB點陣圖,然後又調用SetDIBits()函數轉換DIB格式到DDB格式。(可能有些設備並不支持SetDIBits()函數,你可以指定RC_DI_BITMAP作為RASTERCAPS的標志,然後調用GetDeviceCaps()函數來判斷一下)。
對應的數據結構:
1:BMP文件組成
BMP文件由文件頭、點陣圖信息頭、顏色信息和圖形數據四部分組成。
2:BMP文件頭(14位元組)
BMP文件頭數據結構含有BMP文件的類型、文件大小和點陣圖起始位置等信息。
其結構定義如下:
typedef struct tagBITMAPFILEHEADER
{
WORD bfType; // 點陣圖文件的類型,必須為BM(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中顏色,一個特定的圖像可能並不會使用這些所有的顏色。由於彩色調色板僅僅定義了圖像所用的顏色,所以實際的彩色調色板將小於。 如果想知道這些值是如何得到的,請參考下面文件格式的部分。 由於存儲演算法本身決定的因素,根據幾個圖像參數的不同計算出的大小與實際的文件大小將會有一些細小的差別。

❾ bmp是什麼意思

bmp是什麼意思
BMP是英文Bitmap(點陣圖)的簡寫,它是Windows操作系統中的標准圖像文件格式,能夠被多種Windows應用程序所支持。
隨著Windows操作系統的流行與豐富的Windows應用程序的開發,BMP點陣圖格式理所當然地被廣泛應用。
這種格式的特點是包含的圖像信息較豐富,幾乎不進行壓縮,但由此導致了它與生俱來的缺點--佔用磁碟空間過大。
所以,BMP在單機上比較流行。