📄 daubnet file formats collection bmp.htm
字号:
The palletized 16-color and 256-color images may be compressed
via run length encoding. Notice there is also a OS/2-BMP
format.</FONT></TD></TR></TBODY></TABLE></CENTER>
<HR width="90%">
<CENTER>
<TABLE width="90%">
<TBODY>
<TR>
<TD>
<H2><A href="http://www.daubnet.com/formats/BMP.html#Top"><IMG
height=20 alt="to top"
src="DaubNET File Formats Collection BMP.files/totop.gif"
width=20 align=right border=0 NOSAVE></A><A
name=BasicFileFormat></A><FONT face=Arial,Helvetica>Basic File
Format</FONT></H2>
<TABLE border=1>
<TBODY>
<TR>
<TH colSpan=3><FONT face=Arial,Helvetica>Name</FONT></TH>
<TH><FONT face=Arial,Helvetica>Size</FONT></TH>
<TH><FONT face=Arial,Helvetica>Description</FONT></TH></TR>
<TR>
<TD colSpan=3><FONT
face=Arial,Helvetica>Header</FONT></TD>
<TD><FONT face=Arial,Helvetica>14 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Windows Structure:
BITMAPFILEHEADER</FONT></TD></TR>
<TR>
<TD rowSpan=4><FONT
face=Arial,Helvetica> </FONT></TD>
<TD colSpan=2><FONT
face=Arial,Helvetica>Signature</FONT></TD>
<TD><FONT face=Arial,Helvetica>2 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>'BM'</FONT></TD></TR>
<TR>
<TD colSpan=2><FONT
face=Arial,Helvetica>FileSize</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>File size in
bytes</FONT></TD></TR>
<TR>
<TD colSpan=2><FONT
face=Arial,Helvetica>reserved</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>unused (=0)</FONT></TD></TR>
<TR>
<TD colSpan=2><FONT
face=Arial,Helvetica>DataOffset</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>File offset to Raster
Data</FONT></TD></TR>
<TR>
<TD colSpan=3><FONT
face=Arial,Helvetica>InfoHeader</FONT></TD>
<TD><FONT face=Arial,Helvetica>40 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Windows Structure:
BITMAPINFOHEADER</FONT></TD></TR>
<TR>
<TD rowSpan=11><FONT
face=Arial,Helvetica> </FONT></TD>
<TD colSpan=2><FONT face=Arial,Helvetica>Size</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Size of InfoHeader
=40 </FONT></TD></TR>
<TR>
<TD colSpan=2><FONT face=Arial,Helvetica>Width</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Bitmap Width</FONT></TD></TR>
<TR>
<TD colSpan=2><FONT
face=Arial,Helvetica>Height</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Bitmap
Height</FONT></TD></TR>
<TR>
<TD colSpan=2><FONT
face=Arial,Helvetica>Planes</FONT></TD>
<TD><FONT face=Arial,Helvetica>2 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Number of Planes
(=1)</FONT></TD></TR>
<TR vAlign=top>
<TD colSpan=2><FONT
face=Arial,Helvetica>BitCount</FONT></TD>
<TD><FONT face=Arial,Helvetica>2 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Bits per
Pixel </FONT> <BR><FONT
face=Arial,Helvetica>1 = monochrome palette. NumColors =
1 </FONT> <BR><FONT face=Arial,Helvetica>4 =
4bit palletized. NumColors = 16 </FONT>
<BR><FONT face=Arial,Helvetica>8 = 8bit palletized.
NumColors = 256</FONT> <BR><FONT
face=Arial,Helvetica>16 = 16bit RGB. NumColors =
65536</FONT> (?) <BR><FONT face=Arial,Helvetica>24
= 24bit RGB. NumColors = 16M</FONT></TD></TR>
<TR vAlign=top>
<TD colSpan=2><FONT
face=Arial,Helvetica>Compression</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Type of
Compression </FONT> <BR><FONT
face=Arial,Helvetica>0 = BI_RGB <A
href="http://www.daubnet.com/formats/BMP.html#RasterData">no
compression</A> </FONT> <BR><FONT
face=Arial,Helvetica>1 = BI_RLE8 <A
href="http://www.daubnet.com/formats/BMP.html#Raster8RLE">8bit
RLE encoding</A> </FONT> <BR><FONT
face=Arial,Helvetica>2 = BI_RLE4 <A
href="http://www.daubnet.com/formats/BMP.html#Raster4RLE">4bit
RLE encoding</A></FONT></TD></TR>
<TR vAlign=top>
<TD colSpan=2><FONT
face=Arial,Helvetica>ImageSize</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>(compressed) Size of
Image</FONT> <BR><FONT face=Arial,Helvetica>It is
valid to set this =0 if Compression = 0</FONT></TD></TR>
<TR>
<TD colSpan=2><FONT
face=Arial,Helvetica>XpixelsPerM</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>horizontal resolution:
Pixels/meter</FONT></TD></TR>
<TR>
<TD colSpan=2><FONT
face=Arial,Helvetica>YpixelsPerM</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>vertical resolution:
Pixels/meter</FONT></TD></TR>
<TR>
<TD colSpan=2><FONT
face=Arial,Helvetica>ColorsUsed</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Number of actually used
colors</FONT></TD></TR>
<TR vAlign=top>
<TD colSpan=2><FONT
face=Arial,Helvetica>ColorsImportant</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>Number of important
colors</FONT> <BR><FONT face=Arial,Helvetica>0 =
all</FONT></TD></TR>
<TR vAlign=top>
<TD colSpan=3><FONT
face=Arial,Helvetica>ColorTable</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 * NumColors
bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>present only if
Info.BitsPerPixel <= 8 </FONT> <BR><FONT
face=Arial,Helvetica>colors should be ordered by
importance</FONT></TD></TR>
<TR>
<TD rowSpan=5><FONT
face=Arial,Helvetica> </FONT></TD>
<TD rowSpan=4></TD>
<TD><FONT face=Arial,Helvetica>Red</FONT></TD>
<TD><FONT face=Arial,Helvetica>1 byte</FONT></TD>
<TD><FONT face=Arial,Helvetica>Red
intensity</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>Green</FONT></TD>
<TD><FONT face=Arial,Helvetica>1 byte</FONT></TD>
<TD><FONT face=Arial,Helvetica>Green
intensity</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>Blue</FONT></TD>
<TD><FONT face=Arial,Helvetica>1 byte</FONT></TD>
<TD><FONT face=Arial,Helvetica>Blue
intensity</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>reserved</FONT></TD>
<TD><FONT face=Arial,Helvetica>1 byte</FONT></TD>
<TD><FONT face=Arial,Helvetica>unused (=0)</FONT></TD></TR>
<TR>
<TD colSpan=4><FONT face=Arial,Helvetica>repeated
NumColors times</FONT></TD></TR>
<TR>
<TD colSpan=3><FONT face=Arial,Helvetica>Raster
Data</FONT></TD>
<TD><FONT face=Arial,Helvetica>Info.ImageSize
bytes</FONT></TD>
<TD><FONT face=Arial,Helvetica>The pixel
data</FONT></TD></TR></TBODY></TABLE> </TD></TR></TBODY></TABLE></CENTER>
<HR width="90%">
<CENTER>
<TABLE width="90%">
<TBODY>
<TR>
<TD>
<H2><A href="http://www.daubnet.com/formats/BMP.html#Top"><IMG
height=20 alt="to top"
src="DaubNET File Formats Collection BMP.files/totop.gif"
width=20 align=right border=0 NOSAVE></A><A
name=RasterData></A><FONT face=Arial,Helvetica>Raster Data
encoding</FONT></H2><FONT face=Arial,Helvetica>Depending on
the image's BitCount and on the Compression flag there are 6
different encoding schemes. All of them share the
following:</FONT>
<P><FONT face=Arial,Helvetica>Pixels are stored bottom-up,
left-to-right. Pixel lines are padded with zeros to end on a
32bit (4byte) boundary. For uncompressed formats every line
will have the same number of bytes. Color indices are zero
based, meaning a pixel color of 0 represents the first color
table entry, a pixel color of 255 (if there are that many)
represents the 256th entry. For images with more than 256
colors there is <B>no</B> color
table.</FONT> </P></TD></TR></TBODY></TABLE></CENTER>
<CENTER>
<TABLE width="90%">
<TBODY>
<TR>
<TD>
<H3><A href="http://www.daubnet.com/formats/BMP.html#Top"><IMG
height=20 alt="to top"
src="DaubNET File Formats Collection BMP.files/totop.gif"
width=20 align=right border=0 NOSAVE></A><A
name=Raster1></A><FONT face=Arial,Helvetica>Raster Data
encoding for 1bit / black & white images</FONT></H3><FONT
face=Arial,Helvetica>BitCount = 1 Compression = 0</FONT>
<BR><FONT face=Arial,Helvetica>Every byte holds 8 pixels, its
highest order bit representing the leftmost pixel of those.
There are 2 color table entries. Some readers will ignore them
though, and assume that 0 is black and 1 is white. If you are
storing black and white pictures you should stick to this,
with any other 2 colors this is not an issue. Remember padding
with zeros up to a 32bit boundary (This can be up to 31
zeros/pixels!)</FONT> </TD></TR></TBODY></TABLE></CENTER>
<CENTER>
<TABLE width="90%">
<TBODY>
<TR>
<TD>
<H3><A href="http://www.daubnet.com/formats/BMP.html#Top"><IMG
height=20 alt="to top"
src="DaubNET File Formats Collection BMP.files/totop.gif"
width=20 align=right border=0 NOSAVE></A><A
name=Raster4></A><FONT face=Arial,Helvetica>Raster Data
encoding for 4bit / 16 color images</FONT></H3><FONT
face=Arial,Helvetica>BitCount = 4 Compression = 0</FONT>
<BR><FONT face=Arial,Helvetica>Every byte holds 2 pixels, its
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -