使用 256 种颜色

基于具有能处理 256 色或 256 色以上的视频适配器和显示驱动程序的系统,Visual Basic 可支持 256 种颜色。对于多媒体应用程序,或对于那些需要显示接近相片质量图像的应用程序来说,能同时显示 256 色的功能,是特别有价值的。

在以下场合,可显示 256 色的图象,也可为图形方法定义高达 256 色:

注意 Windows 的元文件,不支持 256 种色。Visual Basic 用缺省的 VGA 16 色的调色板来显示图元文件。

调色板

在 Visual Basic 应用程序中,调色板提供了支持 256 种颜色的基础。在关于调色板的讨论中,了解不同类型调色板之间的关系很重要。硬件调色板包含了 256 个记录项,它们定义了将在屏幕上显示的实际 RGB 值。系统中间色调的调色板是一套预定义的 256 种 RGB 值,对 Windows 本身有效。逻辑调色板是一套可到达 256 种 RGB 的值,它们包含在位图或其它图象中。

Windows 可使用硬件调色板中的 256 种颜色绘图。其中有 20 种颜色被称为静态颜色,是由系统保护的,应用程序不能将其改变。静态颜色包括缺省的 VGA 调色板中的 16 种颜色(与 Visual Basic QBColor 函数定义的颜色一样),外加四种不同深度的灰色。系统中间色调的调色板,通常包含这些静态颜色。

前景窗口(有焦点的窗口),将决定硬件调色板中剩下的 236 种非静态颜色。每当硬件调色板改变时,使用这些颜色的所有背景窗口都要重画。如果背景窗口的逻辑调色板的颜色与当前硬件调色板的颜色不完全匹配,Windows 会赋予一个最接近的匹配值。

256 色图象的显示

如果显示硬件和软件能支持 256 种颜色的话,窗体、图片框和图象控件能自动地用 256 色显示图象。如果用户系统支持的颜色少于图象所需的颜色,Visual Basic 尽可能地将所需颜色映射到最相近的颜色上。

对于真彩色(1,600 万种颜色)的显示,Visual Basic 总是使用正确的颜色。对于单色或 16 色的显示,Visual Basic 会使背景色和用 FillColor 属性设置的颜色抖动。抖动是用来模拟从视频适配器和显示驱动设备得不到的颜色的过程。

用调色板绘图

对于 256 色的视频驱动程序,通过图形方法可使用高达 256 种的颜色。按照缺省规定,Visual Basic 中有效的 256 色是系统中间色调的调色板中的颜色。尽管可用 RGB 函数来指定一种具体的颜色,但实际显示的颜色,是从系统中间色调的调色板中得到的最接近匹配的颜色,这一点显示在图 12.22 中。

图 12.22 从指定色到显示的颜色匹配方式

尽管缺省调色板对于 Visual Basic 来说是系统中间色调的调色板,但使用窗体、用户控件和用户文档的 PaletteMode 属性和 Palette 属性,也可控制颜色的显示。这种情况下,除了颜色要在硬件调色板中与最接近色匹配之外,颜色的匹配关系是一样的。

详细信息 关于调色板和调色板属性的详细内容,请参阅本章后面的“管理多个调色板”。