📄 daubnet file formats collection bmp.htm
字号:
high order 4 bits representing the left of those. There are 16
color table entries. These colors do not have to be the 16
MS-Windows standard colors. Padding each line with zeros up to
a 32bit boundary will result in up to 28 zeros = 7 'wasted
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=Raster8></A><FONT face=Arial,Helvetica>Raster Data
encoding for 8bit / 256 color images</FONT></H3><FONT
face=Arial,Helvetica>BitCount = 8 Compression = 0</FONT>
<BR><FONT face=Arial,Helvetica>Every byte holds 1 pixel. There
are 256 color table entries. Padding each line with zeros up
to a 32bit boundary will result in up to 3 bytes of zeros = 3
'wasted 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=Raster24></A><FONT face=Arial,Helvetica>Raster Data
encoding for 16bit / hicolor images</FONT></H3><FONT
face=Arial,Helvetica>BitCount = 16 Compression =
0</FONT> <BR><FONT face=Arial,Helvetica>Every 2bytes /
16bit holds 1 pixel. </FONT> <BR><FONT
face=Arial,Helvetica><<I>information missing</I>: the 16
bit was introduced together with Video For Windows? Is it a
memory-only-format?></FONT> <BR><FONT
face=Arial,Helvetica>The pixels are no color table pointers.
There are no color table entries. Padding each line with zeros
up to a 16bit boundary will result in up to 2 zero
bytes.</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=Raster24></A><FONT face=Arial,Helvetica>Raster Data
encoding for 24bit / truecolor images</FONT></H3><FONT
face=Arial,Helvetica>BitCount = 24 Compression =
0</FONT> <BR><FONT face=Arial,Helvetica>Every 4bytes /
32bit holds 1 pixel. The first holds its red, the second its
green, and the third its blue intensity. The fourth byte is
reserved and should be zero. There are no color table entries.
The pixels are no color table pointers. No zero padding
necessary.</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=Raster4RLE></A><FONT face=Arial,Helvetica>Raster Data
compression for 4bit / 16 color images</FONT></H3><FONT
face=Arial,Helvetica>BitCount = 4 Compression = 2</FONT>
<BR><FONT face=Arial,Helvetica>The pixel data is stored in
2bytes / 16bit chunks. The first of these specifies the
number of consecutive pixels with the same pair of color. The
second byte defines two color indices. The resulting pixel
pattern will be interleaved high-order 4bits and low order 4
bits (ABABA...). If the first byte is zero, the second defines
an escape code. The End-of-Bitmap is zero padded to end on a
32bit boundary. Due to the 16bit-ness of this structure this
will always be either two zero bytes or
none. </FONT> <BR>
<TABLE>
<TBODY>
<TR>
<TD><FONT face=Arial,Helvetica><B>n</B> (byte
1)</FONT></TD>
<TD><FONT face=Arial,Helvetica><B>c</B> (Byte
2)</FONT></TD>
<TH><FONT face=Arial,Helvetica>Description</FONT></TH></TR>
<TR>
<TD><FONT face=Arial,Helvetica>>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>any</FONT></TD>
<TD><FONT face=Arial,Helvetica><B>n</B> pixels are to be
drawn. The 1st, 3rd, 5th, ... pixels' color is in
<B>c</B>'s high-order 4 bits, the even pixels' color is
in <B>c</B>'s low-order 4 bits. If both color indices
are the same, it results in just <B>n</B> pixels of
color <B>c</B></FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>End-of-line</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>1</FONT></TD>
<TD><FONT
face=Arial,Helvetica>End-of-Bitmap</FONT></TD></TR>
<TR vAlign=top>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>2</FONT></TD>
<TD><FONT face=Arial,Helvetica>Delta. The following 2
bytes define an unsigned offset in x and y direction (y
being up) The skipped pixels should get a color
zero.</FONT></TD></TR>
<TR vAlign=top>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>>=3</FONT></TD>
<TD><FONT face=Arial,Helvetica>The following <B>c</B>
bytes will be read as single pixel colors just as in
uncompressed files. up to 12 bits of zeros follow, to
put the file/memory pointer on a 16bit boundary
again.</FONT></TD></TR></TBODY></TABLE>
<TABLE>
<CAPTION><B><FONT face=Arial,Helvetica>Example for 4bit
RLE</FONT></B></CAPTION>
<TBODY>
<TR>
<TH><FONT face=Arial,Helvetica>Compressed Data</FONT></TH>
<TH><FONT face=Arial,Helvetica>Expanded
data</FONT></TH></TR>
<TR>
<TD><FONT face=Arial,Helvetica>03 04</FONT></TD>
<TD><FONT face=Arial,Helvetica>0 4 0</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>05 06</FONT></TD>
<TD><FONT face=Arial,Helvetica>0 6 0 6 0</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>00 06 45 56 67
00</FONT></TD>
<TD><FONT face=Arial,Helvetica>4 5 5 6 6 7</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>04 78</FONT></TD>
<TD><FONT face=Arial,Helvetica>7 8 7 8</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>00 02 05 01</FONT></TD>
<TD><FONT face=Arial,Helvetica>Move 5 right and 1 up.
(Windows docs say <I>down</I>, which is
wrong)</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>00 00</FONT></TD>
<TD><FONT face=Arial,Helvetica>End-of-line</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>09 1E</FONT></TD>
<TD><FONT face=Arial,Helvetica>1 E 1 E 1 E 1 E
1</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>00 01</FONT></TD>
<TD><FONT face=Arial,Helvetica>EndofBitmap</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>00 00</FONT></TD>
<TD><FONT face=Arial,Helvetica>Zero padding for 32bit
boundary</FONT></TD></TR></TBODY></TABLE> </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=Raster8RLE></A><FONT face=Arial,Helvetica>Raster Data
compression for 8bit / 256 color images</FONT></H3><FONT
face=Arial,Helvetica>BitCount = 8 Compression = 1</FONT>
<BR><FONT face=Arial,Helvetica>The pixel data is stored in
2bytes / 16bit chunks. The first of these specifies the
number of consecutive pixels with the same color. The second
byte defines their color index. If the first byte is zero, the
second defines an escape code. The End-of-Bitmap is zero
padded to end on a 32bit boundary. Due to the 16bit-ness of
this structure this will always be either two zero bytes or
none. </FONT> <BR>
<TABLE>
<TBODY>
<TR>
<TD><FONT face=Arial,Helvetica><B>n</B> (byte
1)</FONT></TD>
<TD><FONT face=Arial,Helvetica><B>c</B> (Byte
2)</FONT></TD>
<TH><FONT face=Arial,Helvetica>Description</FONT></TH></TR>
<TR>
<TD><FONT face=Arial,Helvetica>>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>any</FONT></TD>
<TD><FONT face=Arial,Helvetica><B>n</B> pixels of color
number <B>c</B></FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>End-of-line</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>1</FONT></TD>
<TD><FONT face=Arial,Helvetica>EndOfBitmap</FONT></TD></TR>
<TR vAlign=top>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>2</FONT></TD>
<TD><FONT face=Arial,Helvetica>Delta. The following 2
bytes define an unsigned offset in x and y direction (y
being up) The skipped pixels should get a color
zero.</FONT></TD></TR>
<TR vAlign=top>
<TD><FONT face=Arial,Helvetica>0</FONT></TD>
<TD><FONT face=Arial,Helvetica>>=3</FONT></TD>
<TD><FONT face=Arial,Helvetica>The following <B>c</B>
bytes will be read as single pixel colors just as in
uncompressed files. A zero follows, if <B>c</B> is odd,
putting the file/memory pointer on a 16bit boundary
again.</FONT></TD></TR></TBODY></TABLE>
<TABLE>
<CAPTION><B><FONT face=Arial,Helvetica>Example for 8bit
RLE</FONT></B></CAPTION>
<TBODY>
<TR>
<TH><FONT face=Arial,Helvetica>Compressed Data</FONT></TH>
<TH><FONT face=Arial,Helvetica>Expanded
data</FONT></TH></TR>
<TR>
<TD><FONT face=Arial,Helvetica>03 04</FONT></TD>
<TD><FONT face=Arial,Helvetica>04 04 04</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>05 06</FONT></TD>
<TD><FONT face=Arial,Helvetica>06 06 06 06
06</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>00 03 45 56 67
00</FONT></TD>
<TD><FONT face=Arial,Helvetica>45 56 67</FONT></TD></TR>
<TR>
<TD><FONT face=Arial,Helvetica>02 78</FONT></TD>
<TD><FONT face=Arial,Helvetica>78 78</FONT></TD></TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -