⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bmp.html

📁 各种文件格式说明及程序描述
💻 HTML
📖 第 1 页 / 共 3 页
字号:
bi_bitfields, bits set in each dword mask must be contiguous and should not overlap the
bits of another mask. all the bits in the pixel do not have to be used. </p>
<b><p align="justify">windows 95 specific:</b> when the <i>compression</i> field is set to
bi_bitfields, windows 95 supports only the following 32bpp color mask: the blue mask is
0x000000ff, the green mask is 0x0000ff00, and the red mask is 0x00ff0000.</p>
</dir>
</dir>
</font><b><font face="宋体" lang="zh-cn" size="5"><p></font><font face="book antiqua"
size="5"><a name="_toc381201088">compression field</a></p>
</font></b><font face="book antiqua" size="3"><p align="justify">the <i>compression</i>
field specifies the way the bitmap data is stored in the file. this information together
with the <i>bits per pixel</i> (<i>bpp</i>) field identifies the compression algorithm to
follow.</p>
<p align="justify">the following values are possible in this field:</p>
</font><table border="1" cellspacing="2" bordercolor="#000000" cellpadding="7" width="657">
<tr>
<td width="18%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
align="justify">value</b></font></td>
<td width="82%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
align="justify">meaning</b></font></td>
</tr>
<tr>
<td width="18%" valign="top"><font face="book antiqua" size="3"><p align="justify">bi_rgb</font></td>
<td width="82%" valign="top"><font face="book antiqua" size="3"><p align="justify">an
uncompressed format.</font></td>
</tr>
<tr>
<td width="18%" valign="top"><font face="book antiqua" size="3"><p align="justify">bi_rle4</font></td>
<td width="82%" valign="top"><font face="book antiqua" size="3"><p align="justify">an rle
format for bitmaps with 4 bits per pixel. the compression format is a two-byte format
consisting of a count byte followed by two word-length color indices. for more
information, see the following remarks section.</font></td>
</tr>
<tr>
<td width="18%" valign="top"><font face="book antiqua" size="3"><p align="justify">bi_rle8</font></td>
<td width="82%" valign="top"><font face="book antiqua" size="3"><p align="justify">a
run-length encoded (rle) format for bitmaps with 8 bits per pixel. the compression format
is a two-byte format consisting of a count byte followed by a byte containing a color
index. for more information, see the following remarks section.</font></td>
</tr>
<tr>
<td width="18%" valign="top"><font face="book antiqua" size="3"><p align="justify">bi_bitfields</font></td>
<td width="82%" valign="top"><font face="book antiqua" size="3"><p align="justify">specifies
that the bitmap is not compressed and that the color table consists of three double word
color masks that specify the red, green, and blue components, respectively, of each pixel.
this is valid when used with 16- and 32- bits-per-pixel bitmaps.</font></td>
</tr>
</table>
<font face="book antiqua" size="3"><p align="justify">when the compression field is
bi_rle8, the bitmap is compressed by using a run-length encoding (rle) format for an 8-bit
bitmap. this format can be compressed in encoded or absolute modes. both modes can occur
anywhere in the same bitmap.</p>
<ul>
<b>
<li>encoded mode consists of two bytes: </li>
</ul>
</b></font><font face="宋体" lang="zh-cn" size="3"><dir>
<dir>
</font><font face="book antiqua" size="3"><p align="justify">the first byte specifies the
number of consecutive pixels to be drawn using the color index contained in the second
byte. in addition, the first byte of the pair can be set to zero to indicate an escape
that denotes an end of line, end of bitmap, or delta. the interpretation of the escape
depends on the value of the second byte of the pair, which can be one of the following:</p>
</dir>
</dir>
</font><table cellspacing="0" border="0" cellpadding="7" width="602">
<tr>
<td width="9%" valign="top"><font face="book antiqua" size="3"><p align="justify">0</font></td>
<td width="91%" valign="top"><font face="book antiqua" size="3"><p align="justify">end of
line.</font></td>
</tr>
<tr>
<td width="9%" valign="top"><font face="book antiqua" size="3"><p align="justify">1</font></td>
<td width="91%" valign="top"><font face="book antiqua" size="3"><p align="justify">end of
bitmap.</font></td>
</tr>
<tr>
<td width="9%" valign="top"><font face="book antiqua" size="3"><p align="justify">2</font></td>
<td width="91%" valign="top"><font face="book antiqua" size="3"><p align="justify">delta.
the two bytes following the escape contain unsigned values indicating the horizontal and
vertical offsets of the next pixel from the current position.</font></td>
</tr>
</table>
<font face="宋体" lang="zh-cn" size="3"><ul>
</font><font face="book antiqua" size="3"><b>
<li>absolute mode.</li>
</ul>
</b></font><font face="宋体" lang="zh-cn" size="3"><dir>
<dir>
</font><font face="book antiqua" size="3"><p align="justify">the first byte is zero and
the second byte is a value in the range 03h through ffh. the second byte represents the
number of bytes that follow, each of which contains the color index of a single pixel.
when the second byte is 2 or less, the escape has the same meaning as in encoded mode. in
absolute mode, each run must be aligned on a word boundary.</p>
</font><font face="宋体" lang="zh-cn" size="3"><p align="justify"> </p>
<p align="justify"> </p>
</dir>
</dir>
</font><font face="book antiqua" size="3"><p align="justify">the following example shows
the hexadecimal values of an 8-bit compressed bitmap.</p>
</font><font face="courier new" size="3"><p align="justify">03 04 05 06 00 03 45 56 67 00
02 78 00 02 05 01 02 78 00 00 09 1e 00 01</p>
</font><font face="book antiqua" size="3"><p align="justify">this bitmap would expand as
follows (two-digit values represent a color index for a single pixel):</p>
</font><font face="courier new" size="3"><p align="justify">04 04 04</p>
<p align="justify">06 06 06 06 06</p>
<p align="justify">45 56 67</p>
<p align="justify">78 78</p>
<p align="justify">move current position 5 right and 1 down</p>
<p align="justify">78 78</p>
<p align="justify">end of line</p>
<p align="justify">1e 1e 1e 1e 1e 1e 1e 1e 1e</p>
<p align="justify">end of rle bitmap</p>
</font><font face="宋体" lang="zh-cn" size="3"><p align="justify"> </p>
</font><font face="book antiqua" size="3"><p align="justify">when the compression field is
bi_rle4, the bitmap is compressed by using a run-length encoding format for a 4-bit
bitmap, which also uses encoded and absolute modes:</p>
<ul>
<b>
<li>in encoded mode.</li>
</ul>
</b></font><font face="宋体" lang="zh-cn" size="3"><dir>
<dir>
</font><font face="book antiqua" size="3"><p align="justify">the first byte of the pair
contains the number of pixels to be drawn using the color indices in the second byte. the
second byte contains two color indices, one in its high-order four bits and one in its
low-order four bits. the first of the pixels is drawn using the color specified by the
high-order four bits, the second is drawn using the color in the low-order four bits, the
third is drawn using the color in the high-order four bits, and so on, until all the
pixels specified by the first byte have been drawn.</p>
</font><font face="宋体" lang="zh-cn" size="3">
</dir>
</dir>
<ul>
</font><font face="book antiqua" size="3"><b>
<li>in absolute mode. </li>
</ul>
</b></font><font face="宋体" lang="zh-cn" size="3"><dir>
<dir>
</font><font face="book antiqua" size="3"><p align="justify">the first byte is zero, the
second byte contains the number of color indices that follow, and subsequent bytes contain
color indices in their high- and low-order four bits, one color index for each pixel. in
absolute mode, each run must be aligned on a word boundary. </p>
<p align="justify">the end-of-line, end-of-bitmap, and delta escapes described for bi_rle8
also apply to bi_rle4 compression.</p>
</font><font face="宋体" lang="zh-cn" size="3"><p align="justify"> </p>
</dir>
</dir>
</font><font face="book antiqua" size="3"><p align="justify">the following example shows
the hexadecimal values of a 4-bit compressed bitmap.</p>
</font><font face="courier new" size="3"><p align="justify">03 04 05 06 00 06 45 56 67 00
04 78 00 02 05 01 04 78 00 00 09 1e 00 01</p>
</font><font face="book antiqua" size="3"><p align="justify">this bitmap would expand as
follows (single-digit values represent a color index for a single pixel):</p>
</font><font face="courier new" size="3"><p align="justify">0 4 0</p>
<p align="justify">0 6 0 6 0</p>
<p align="justify">4 5 5 6 6 7</p>
<p align="justify">7 8 7 8</p>
<p align="justify">move current position 5 right and 1 down</p>
<p align="justify">7 8 7 8</p>
<p align="justify">end of line</p>
<p align="justify">1 e 1 e 1 e 1 e 1</p>
<p align="justify">end of rle bitmap</p>
</font><b><font face="宋体" lang="zh-cn" size="5"><p></font><font face="book antiqua"
size="5"><a name="_toc381201089">colors field</a></p>
</font></b><font face="book antiqua" size="3"><p align="justify">the <i>colors</i> field
specifies the number of color indices in the color table that are actually used by the
bitmap. if this value is zero, the bitmap uses the maximum number of colors corresponding
to the value of the <i>bbp</i> field for the compression mode specified by the <i>compression</i>
field. </p>
<p align="justify">if the <i>colors</i> field is nonzero and the <i>bbp</i> field less
than 16, the <i>colors</i> field specifies the actual number of colors the graphics engine
or device driver accesses. </p>
<p align="justify">if the <i>bbp</i> field is 16 or greater, then <i>colors</i> field
specifies the size of the color table used to optimize performance of windows color
palettes. </p>
<p align="justify">if <i>bbp</i> equals 16 or 32, the optimal color palette starts
immediately following the three double word masks.</p>
<p align="justify">if the bitmap is a packed bitmap (a bitmap in which the bitmap array
immediately follows the bitmap header and which is referenced by a single pointer), the <i>colors</i>
field must be either 0 or the actual size of the color table. </p>
</font><b><font face="宋体" lang="zh-cn" size="5"><p></font><font face="book antiqua"
size="5"><a name="_toc381201090">important colors field</a></p>
</font></b><font face="arial" size="3"><p align="justify">the <i>important colors</i>
field s</font><font face="book antiqua" size="3">pecifies the number of color indices that
are considered important for displaying the bitmap. if this value is zero, all colors are
important. </font></td>
</tr>
</table>
</center></div>
<p align="center"><a href="../index.htm">返回</a></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -