关于位图

位图是可在 DC) (设备上下文中选择的 GDI 对象之一。 设备上下文 是定义一组图形对象及其关联属性以及影响输出的图形模式的结构。 下表描述了可在设备上下文中选择的 GDI 对象。

Graphic 对象 说明
位图 创建、操作 (缩放、滚动、旋转和绘制) ,并将图像作为文件存储在磁盘上。
画笔 绘制多边形、椭圆形和路径的内部。
字体 在视频显示器和其他输出设备上绘制文本。
逻辑调色板 由应用程序创建并与给定设备上下文关联的调色板。
路径 填充和/或轮廓 (或形状) 的一个或多个图形。
应用程序用于绘制线条和曲线的图形工具。
区域 一个矩形、多边形或椭圆 (或两个或更多个这些形状的组合,) 可以填充、绘制、倒排、定框,并用于对光标位置) 执行命中测试 (测试。

 

从开发人员的角度来看,位图由指定或包含以下元素的结构集合组成:

  • 一个标头,描述创建像素矩形的设备分辨率、矩形的尺寸、位数组的大小等。
  • 逻辑调色板。
  • 位数组,用于定义位图图像中的像素与逻辑调色板中的条目之间的关系。

位图大小与其包含的图像类型相关。 位图图像可以是单色或彩色。 在图像中,每个像素对应于位图中的一个或多个位。 单色图像的比率为每像素 1 位 (bpp) 。 彩色成像更为复杂。 位图可以显示的颜色数等于每像素位数的两个。 因此,256 色位图需要 8 bpp (2^8 = 256) 。

控制面板应用程序是使用位图的应用程序的示例。 当你为桌面选择背景 (或壁纸) 时,实际上你选择了一个位图,系统使用该位图绘制桌面背景。 系统通过在桌面上重复绘制 32 x 32 像素图案来创建所选背景图案。

下图显示了开发人员对文件Redbrick.bmp中找到的位图的透视图。 它显示调色板数组、32 x 32 像素矩形,以及将颜色从调色板映射到矩形中的像素的索引数组。

像素矩形、调色板数组和redbrick.bmp索引数组的插图

在前面的示例中,使用 16 种颜色的调色板在 VGA 显示设备上创建了像素矩形。 16 色调色板需要 4 位索引;因此,将调色板颜色映射到像素颜色的数组也由 4 位索引组成。 (有关逻辑调色板的详细信息,请参阅 Colors.)

注意

在上面的位图中,系统将索引映射到以矩形区域的底部扫描线开始到顶部扫描线结束的像素。 扫描线是视频显示器上相邻像素的单行。 例如,数组的第一行 (行 0) 对应于像素的底部行,扫描第 31 行。 这是因为上述位图是自下而上与设备无关的位图, (DIB) (一种常见的位图类型)。 在自上而下 DDB) (依赖于设备的位图中,系统会将索引映射到从顶部扫描行开始的像素。

 

以下主题介绍位图的不同区域。