关于位图

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

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

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

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

位图大小与它包含的图像类型相关。 位图图像可以是彩色或彩色。 在图像中,每个像素对应于位图中的一个或多个位。 在 bpp 图像中,色度图像每像素 1 (位) 。 颜色图像处理更复杂。 位图可以显示的颜色数等于每像素位数的两个。 因此,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 (设备无关的) ,这是一种常见的位图类型。 在自顶向下 DIB 和 DDB (设备相关的位图中,) 将索引映射到以顶部扫描线开头的像素。

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