位图设备
位图是可在DC(设备上下文)中选择的GDI对象之一。
设备上下文是定义一组图形对象及其关联属性以及影响输出的图形模式的结构。 位图分为两类:设备无关的位图(DIB)和设备依赖位图(DDB) DIB 文件格式旨在确保使用一个应用程序创建的位图图形可以加载并显示在另一个应用程序中, 同时保留与原始应用程序相同的外观。 与设备无关的位图 (DIB) 包含颜色表。 颜色表描述像素值与RGB颜色值的对应方式,这些值描述由发射光产生的颜色。 因此DIB可以在任何设备上实现正确的配色方案。DIB包含以下颜色和维度信息: 创建矩形图像的设备的颜色格式。 创建矩形图像的设备分辨率。 创建映像的设备的调色板。 将红色、绿色、蓝色 ( RGB ) 三元元素映射到矩形图像中的像素的位数组。 一个数据压缩标识符,指示 (使用任何) 来减小位数组大小的数据压缩方案。 颜色和维度信息存储在 位图信息类 结构中,该结构由 位图信息头类 结构组成,后跟两个或多个 色度类 结构。 位图信息头类 结构指定像素矩形的尺寸,描述设备的颜色技术,并标识用于减小位图大小的压缩方案。 色度类 结构标识像素矩形中显示的颜色。 DIB 有两种:自下而上的 DIB,其中原点位于左下角。自上而下的 DIB,其中原点位于左上角。 如果 DIB 的高度(如位图信息标头结构的 高度 成员所指示)为正值,则为自下而上的 DIB; 如果高度为负值,则为自上而下的 DIB。 无法压缩自上而下的 DDB。 颜色格式根据颜色平面和颜色位的计数指定。 颜色平面的计数始终为 1;对于单色位图,颜色位的计数为 1,VGA 位图为 4,其他颜色设备上的位图为 8、16、24 或 32。 应用程序通过调用 设备项目 函数检索特定显示器 (或打印机) 使用的颜色位数,并将 BITSPIXEL 指定为第二个参数。 调色板由 色度类 结构数组表示,这些结构指定显示设备调色板中每种颜色的红色、绿色和蓝色强度分量。 调色板数组中的每个颜色索引映射到与位图关联的矩形区域中的特定像素。 此数组的大小(以位为单位)等效于矩形的宽度(以像素为单位),乘以矩形的高度(以像素为单位)再乘以设备的颜色位计数。 应用程序可以通过调用 设备项目 函数来检索设备调色板的大小。 Windows 支持压缩 8 bpp 和 4 bpp 自下而上 DDB 的调色板数组。 可以使用运行长度编码 (RLE) 方案压缩这些数组。 RLE 方案使用 2 字节值,第一个字节指定使用颜色索引的连续像素数,第二个字节指定索引。 应用程序可以通过初始化所需的结构并调用 设备位图 函数,从 DDB 创建 DIB。 若要确定设备是否支持此函数,请调用 设备项目 函数,并将RC_DI_BITMAP指定为 RASTERCAPS 标志。 需要复制位图的应用程序可以使用 透明传输 将源位图中的所有像素复制到目标位图,但那些与透明颜色匹配的像素除外。 应用程序可以通过调用 指定像素 或 拉伸传输 函数,使用 DIB 在显示设备上设置像素。 若要确定设备是否支持 指定像素 函数,请调用 设备项目 函数。 设备依赖位图(也称为 GDI 位图)是 Microsoft Windows 16位DOS系统中唯一可用的位图。 随着显示技术的改进和各种可用显示设备的增加,某些固有问题浮出水面,只能通过 DIB 来解决。 因此绘图应用程序无法快速确定位图是否适用于运行应用程序的视频显示设备类型。 尽管存在这些问题,但 DDB (也称为兼容位图) 仍可用于更好的 GDI 性能和其他情况。 兼容位图使用单一结构(位图类)描述设备相关的位图 (DB) 。 此结构的成员指定矩形区域的宽度和高度;将设备调色板中的条目映射到像素的数组的宽度;和设备的颜色格式。 应用程序可以通过调用 设备项目 函数并指定适当的常量来检索设备的颜色格式。 请注意,DDB 不包含颜色值;相反,颜色采用与设备相关的格式。 有关详细信息,请参阅 位图中的颜色。 由于每个设备都可以有自己的一组颜色,因此为一个设备创建的 DDB 可能无法在不同的设备上很好地显示。位图类
中文名字 | 英文名称 | 长度 | 作用解释 |
位图类 | BITMAP | 24 | 包含了位图数据的结构 |
位图类——成员表 | |||
---|---|---|---|
分类 | bmType | 整数 | 位图类型,其值必须为0 |
宽度 | bmWidth | 整数 | 位图的宽度,单位为像素 |
高度 | bmHeight | 整数 | 位图的高度,单位为像素 |
长度 | bmWidthBytes | 整数 | 每行的字节数,其值必须能被2整除。 |
层数 | bmPlanes | 整形 | 颜色平面数,一般为1。 |
位数 | bmBitsPixel | 整形 | 位图的位深度,一般为24或32 |
数据 | bmBits | 整数 | 一个指向内存的指针,所指向的内容为位图存放的地方 |
位图标头类
中文名字 | 英文名称 | 长度 | 作用解释 |
位图标头类 | BITMAPCOREHEADER | 12 | 包含了位图数据的标头信息 |
位图标头类——成员表 | |||
---|---|---|---|
长度 | bcSize | 整数 | 结构体的字节数,12 |
宽度 | bcWidth | 整形 | 位图的宽度,单位为像素 |
高度 | bcHeight | 整形 | 位图的高度,单位为像素 |
层数 | bcPlanes | 整形 | 颜色平面数,一般为1。 |
位数 | bcBitCount | 整形 | 位图的位深度,1, 4, 8, 24或32 |
位图文件类
中文名字 | 英文名称 | 长度 | 作用解释 |
位图文件类 | BITMAPCOREHEADER | 14 | 包含了位图文件的头部信息 |
位图文件类——成员表 | |||
---|---|---|---|
分类 | bfType | 整形 | 图片的类型,只能是BM |
长度 | bfSize | 整数 | 宽*高*位数+偏移 |
预留 | bfReserved1 | 整数 | 无效信息 |
偏移 | bfOffBits | 整数 | 位图数据的偏移量。 |
位图信息头类
中文名字 | 英文名称 | 长度 | 作用解释 |
位图信息头类 | BITMAPINFOHEADER | 40 | 包含了位图信息的结构 |
位图信息头类——成员表 | |||
---|---|---|---|
长度 | biSize | 整数 | 指定这个结构的长度,为40 |
宽度 | biWidth | 整数 | 位图的宽度,单位为像素 |
高度 | biHeight | 整数 | 位图的高度,单位为像素 |
层数 | biPlanes | 整形 | 颜色平面数,一般为1。 |
位数 | biBitCount | 整形 | 位图的位深度,1, 4, 8, 24或32 |
压缩 | biCompression | 整数 | 指定位图是否压缩,有效的值为BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS |
大小 | biSizeImage | 整数 | 指定实际的位图数据占用的字节数 |
水平像素 | biXPelsPerMeter | 整数 | 指定目标设备的水平分辨率 |
垂直像素 | biYPelsPerMeter | 整数 | 指定目标设备的垂直分辨率 |
实际颜色 | biClrUsed | 整数 | 指定本图象实际用到的颜色数,0表示颜色数为2 |
重要颜色 | biClrImportant | 整数 | 指定本图象中重要的颜色数,0表示全部颜色。 |
色度类
中文名字 | 英文名称 | 长度 | 作用解释 |
色度类 | RGBQUAD | 4 | 描述了由红色,绿色和蓝色的相对强度组成的颜色。 |
色度类——成员表 | |||
---|---|---|---|
蓝度 | rgbBlue | 字节 | 绿色强度值。 |
绿度 | rgbGreen | 字节 | 绿色强度值。 |
红度 | rgbRed | 字节 | 红色强度值。 |
预留 | rgbReserved | 字节 | 预留,必须是0 |
位图信息类
中文名字 | 英文名称 | 长度 | 作用解释 |
位图信息类 | BITMAPINFO | 44+ | 定义 DIB 的尺寸和颜色信息。 |
位图类——成员表 | |||
---|---|---|---|
信息头 | bmiHeader | 位图信息头类 | 一个 位图信息头类 结构,其中包含有关颜色格式维度的信息。 |
颜色组 | bmiColors[1] | 色度类 | 构成颜色表的色度类数组或者一个由16位正数数组,指定当前实现的逻辑调色板中的索引。 |
中文名称 | 英文名称 | 示例 | 作用 |
位图函数 | |||
---|---|---|---|
位图传输 | BitBlt | 位图传输(目标,左,顶,宽,高,源设备,源X,源Y,光栅) | 该函数对指定的源设备环境区域中的像素进行位块传输 |
创建位图 | CreateBitmap | 创建位图(宽度,高度,色面,色位,数据) | 创建一个具有指定宽度,高度和颜色格式(每个像素的颜色平面和位)的位图。 |
新建位图 | CreateBitmapIndirect | 位图=新建位图(位图类) | 通过位图结构创建一个具有指定宽度,高度和颜色格式(每个像素的颜色平面和位)的位图。 |
创建图像 | CreateCompatibleBitmap | 创建图像(设备,宽度,高度) | 创建与与指定设备参数标识的颜色格式兼容的位图。 |
内建位图 | CreateDIBSection | 内建位图(设备,位图信息,颜色索引,位图,映射,偏移) | 创建一个与设备无关的位图(DIB内图),应用程序可以直接写入。 |
关联位图 | CreateDIBitmap | 关联位图(设备,格式,标志,数据,位色,使用) | 从与设备无关的位图(DIB)创建与设备相关的位图(DDB) |
兼容位图 | CreateDiscardableBitmap | 图像=兼容位图(设备,宽度,高度) | 创建与指定设备兼容的位图,具有与设备一样的位/像素格式和颜色调色板 |
填充表层 | ExtFloodFill | 填充表层(设备,左,上,填色,方式) | 使用当前画笔填充显示表面的一个区域。 |
填充表面 | FloodFill | 填充表面(设备,左,上,填色) | 使用当前画笔填充显示表面的一个区域。 |
透明混合 | GdiAlphaBlend | 透明混合(目标,左,顶,宽,高,源,左,顶,宽,高,混合) | 显示具有透明或半透明像素的位图。混合类 |
渐变填充 | GdiGradientFill | 渐变填充(设备,顶点组,顶点数,网格,数量,模式) | 指定顶点数组填充矩形和三角形网格结构。渐变填充模式 |
掩码传输 | MaskBlt | 掩码传输(目标,左,顶,宽,高,源,左,顶,掩码图,左偏,上偏,光栅) | 使用指定的单色掩码位图(及偏移量)和光栅操作合并源位图和目标位图的颜色数据。光栅定义 |
方点传输 | PlgBlt | 方点传输(目标,三点,源,左,顶,宽,高,掩码图,左偏,上偏) | 执行颜色数据位从源设备的矩形到目标设备平行四边形三个顶点的位块传输。 |
位图数据 | GetBitmapBits | 位图数据(图片,长度,@数据) | 将指定与设备相关的位图的位图位复制到缓冲区中。 |
数据位图 | SetBitmapBits | 数据位图(图片,长度,数据) | 将位图的颜色数据位设置为指定的值。 |
取图宽高 | GetBitmapDimensionEx | 取图宽高(图像,尺寸类) | 获取位图的宽高尺寸。 |
改图宽高 | SetBitmapDimensionEx | 改图宽高(图像,宽,高,旧尺寸) | 设置位图的宽高新尺寸。 |
取颜色表 | GetDIBColorTable | 取颜色表(设备,序号,条目,数组) | 从当前在指定设备位图的颜色表中的一系列条目中检索颜色值。 |
改颜色表 | SetDIBColorTable | 改颜色表(设备,序号,条目,数组) | 将当前选择的DIB颜色表中的一系列颜色值数组设置为指定的设备中。 |
设备位图 | GetDIBits | 设备位图(设备,位图,首行,行数,@数据,@信息,格式) | 检索指定兼容位图的位,并使用指定的格式将它们作为 DIB 复制到缓冲区或信息结构中。格式:0=RGB,1=索引 |
设置像素 | SetDIBits | 设置像素(设备,位图,起始行,行数,数据,信息,格式) | 在指定的DIB中找到的颜色数据和信息设置兼容位图(DDB)中的像素。格式:0=RGB,1=索引 |
指定像素 | SetDIBitsToDevice | 指定像素(设备,左,顶,宽,高,源左,源上,起始行,行数,色组,像素,索引) | 使用源图像设备指定位置与目标设备指定矩形中的像素。索引:0=RGB颜色,1索引颜色 |
获取颜色 | GetPixel | 颜色=获取颜色(设备,x,y) | 获取设备指定坐标处像素的颜色值。 |
设置颜色 | SetPixel | 设置颜色(设备,x,y,颜色) | 设置设备指定坐标处像素的颜色值。 |
拉伸模式 | GetStretchBltMode | 模式=拉伸模式(设备) | 获取指定设备的拉伸模式。 |
模式拉伸 | SetStretchBltMode | 模式拉伸(设备,模式) | 设置指定设备的拉伸模式。 |
伸缩传输 | StretchBlt | 伸缩传输(目标,左,顶,宽,高,源,左,顶,宽,高,光栅) | 将位图从源矩形拉伸或压缩复制到目标矩形中,以适合尺寸。光栅定义 |
拉伸传输 | StretchDIBits | 拉伸传输(目标,左,顶,宽,高,左,顶,宽,高,位数,信息,色型,光栅) | 将图像中像素矩形的颜色数据拉伸或压缩复制到指定的目标矩形。信息; 色型:0=RGB,1=索引 |
透明传输 | TransparentBlt | 透明传输(设备,左,顶,宽,高,源设备,源,左,顶,宽,高,透明色) | 将对应于像素矩形的颜色数据从指定的源设备上下文传输到目标设备上下文中。 |
设备函数 | |||
取消挂起 | CancelDC | 取消挂起(设备) | 取消指定设备上下文上的任何挂起操作。 |
创建设备 | CreateCompatibleDC | 设备=创建设备(设备) | 创建与指定设备兼容的内存设备。只能用于支持栅格操作的设备 |
驱动设备 | CreateDCA | 设备=驱动设备(驱动名,设备名,0,驱动) | 通过使用指定的名称创建驱动设备 |
删除设备 | DeleteDC | 删除设备(设备) | 删除指定的设备 |
驱动信息 | CreateICA | 驱动=驱动信息(驱动名,设备名,端口或文件名,驱动) | 获取有关设备的信息而不创建设备 |
删除对象 | DeleteObject | 删除对象(对象) | 删除逻辑笔,画笔,字体,位图,区域或调色板,释放与对象相关联的所有系统资源。 |
视频绘图 | DrawEscape | 视频绘图(设备,转义函数,长度,数据) | 将数据直接发至显示设备,访问通过图形设备界面(GDI)无法直接使用的视频显示的绘图功能。 |
枚举对象 | EnumObjects | 枚举对象(设备,强元,@回调,数据,矩形) | 枚举可用于指定设备上下文的笔或画笔。直到所有对象都被枚举为止。 |
设备转码 | Escape | 设备转码(设备,转码,长度,输入,输出) | 访问不能通过GDI直接使用的特定设备的功能。 |
扩展转码 | ExtEscape | 扩展转码(设备,转码,长度,输入,长度,输出) | 允许应用程序访问通过GDI不可用的特定设备的功能。 |
当前对象 | GetCurrentObject | 设备=当前对象(设备,类型) | 返回指定类型的当前选定对象。类型有1画笔,2笔刷,5色板,6字体,7位图,14颜色空间 |
设备项目 | GetDeviceCaps | 设备项目(设备,项目) | 检索指定设备的特定于设备项目的信息。 |
设备起点 | GetDCOrgEx | 设备起点(设备,坐标) | 获取指定设备的最终转换起始点。 |
获得对象 | GetObjectA | 获得对象(图像,长度,@数据) | 获取图形对象的信息 位图类 画笔类 笔刷类 色板类 逻辑字体类 扩展笔类 |
对象类型 | GetObjectType | 图型=对象类型(图形对象) | 获取图形对象的类型 |
获取布局 | GetLayout | 布局=获取布局(设备) | 获取指定设备的当前布局。1从右到左,2位图传输,4LAYOUT_VBH |
设置布局 | SetLayout | 设置布局(设备,布局) | 设置指定设备的当前布局。1从右到左,8位图传输禁用任何反射 |
固有对象 | GetStockObject | 对象=固有对象(类型) | 获取一个常用笔、画笔、字体或调色板的句柄。常用对象类型 |
复位设备 | ResetDCA | 复位设备(设备,信息) | 使用指定的信息更新指定的打印机或绘图仪设备 |
恢复设备 | RestoreDC | 恢复设备(设备,状态) | 通过从先前调用 "保存设备"得到的状态信息来恢复设备,-1是恢复到最近状态 |
保存设备 | SaveDC | 状态=保存设备(设备) | 将选定对象和图形模式的数据复制到堆栈来保存指定设备的当前状态。 |
选择对象 | SelectObject | 选择对象(设备,对象) | 在指定的设备中选择一个新对象。包括位图,笔刷,字体,画笔,区域等 |
枚举对象回调
中文名字 | 英文名称 | 参数 | 作用解释 |
枚举对象回调 | EnumObjectsProc | 2 | 用于处理对象数据。返回0停止枚举 |
枚举对象回调——成员表 | |||
---|---|---|---|
参数 | lpLogObject | 整数 | 指向描述对象属性的 画笔类 或 笔刷类 结构的指针。 |
数据 | lpData | 整数 | 传递的应用程序定义数据的指针。 |
设备对象类型
英文名称 | 数值 | 作用解释 |
OBJ_PEN | 1 | 笔 |
OBJ_BRUSH | 2 | Brush |
OBJ_DC | 3 | 设备上下文 |
OBJ_METADC | 4 | 图元文件 DC |
OBJ_PAL | 5 | 调色板 |
OBJ_FONT | 6 | 字体 |
OBJ_BITMAP | 7 | Bitmap |
OBJ_REGION | 8 | 区域 |
OBJ_METAFILE | 9 | Metafile |
OBJ_MEMDC | 10 | 内存 DC |
OBJ_EXTPEN | 11 | 扩展笔 |
OBJ_ENHMETADC | 12 | 增强型图元文件 DC |
OBJ_ENHMETAFILE | 13 | 增强型图元文件 |
OBJ_COLORSPACE | 14 | 颜色空间 |
常用对象类型
英文名称 | 数值 | 作用解释 |
WHITE_BRUSH | 0 | 白色画刷。 |
LTGRAY_BRUSH | 1 | 浅灰色画刷。 |
GRAY_BRUSH | 2 | 灰色画刷。 |
DKGRAY_BRUSH | 3 | 深灰色画刷。 |
BLACK_BRUSH | 4 | 黑色画刷。 |
NULL_BRUSH | 5 | 空画刷 |
HOLLOW_BRUSH | 5 | 空心画刷 。 |
WHITE_PEN | 6 | 白色触笔。 |
BLACK_PEN | 7 | 黑色触笔。 |
NULL_PEN | 8 | 空触控笔不绘制任何内容。 |
OEM_FIXED_FONT | 10 | 原始设备制造商 (OEM) 依赖固定间距 (正方形) 字体。 |
ANSI_FIXED_FONT | 11 | Windows 固定间距 (正) 系统字体。 |
ANSI_VAR_FONT | 12 | Windows 可变间距 (比例空间) 系统字体。 |
SYSTEM_FONT | 13 | 系统字体。 默认情况下,系统使用系统字体来绘制菜单、对话框控件和文本。不建议使用。默认系统字体为 Tahoma。 |
DEVICE_DEFAULT_FONT | 14 | 设备依赖字体。 |
DEFAULT_PALETTE | 15 | 默认调色板。 此调色板由系统调色板中的静态颜色组成。 |
DEFAULT_GUI_FONT | 17 | 用户界面对象(如菜单和对话框)的默认字体。不建议使用。默认字体为 Tahoma。 |
SYSTEM_FIXED_FONT | 16 | 固定间距 (单调) 系统字体。 此库存对象仅用于与 3.0 之前的 16 位 Windows 版本兼容。 |
DC_BRUSH | 18 | 纯色画笔。 默认颜色为白色。 可以使用 改笔刷色 函数更改颜色。 |
DC_PEN | 19 | 纯色笔颜色。 默认颜色为黑色。 可以使用 改画笔色 函数更改颜色。 |
设备项值
英文名称 | 数值 | 作用解释 |
DRIVERVERSION | 0 | 设备驱动程序版本。 |
TECHNOLOGY | 2 | 设备技术。返回定义:0矢量绘图仪;1光栅显示;2光栅打印机;3光栅相机;4字符流;5图元文件;6显示文件 |
HORZSIZE | 4 | 物理屏幕的宽度(以毫米为单位)。 |
VERTSIZE | 6 | 物理屏幕的高度(以毫米为单位)。 |
HORZRES | 8 | 屏幕的宽度(以像素为单位);或 ,对于打印机,页面可打印区域的宽度(以像素为单位)。 |
VERTRES | 10 | 屏幕的高度(以光栅线为单位);对于打印机,页面可打印区域的高度(以像素为单位)。 |
BITSPIXEL | 12 | 每个像素的相邻颜色位数。 |
PLANES | 14 | 颜色平面数。 |
NUMBRUSHES | 16 | 特定于设备的画笔数。 |
NUMPENS | 18 | 特定于设备的笔数。 |
NUMMARKERS | 20 | 特定于设备的标记数。 |
NUMFONTS | 22 | 特定于设备的字体数。 |
NUMCOLORS | 24 | 设备颜色表中的条目数(如果设备的颜色深度不超过每像素 8 位)。 对于颜色深度更大的设备,返回 -1。 |
PDEVICESIZE | 26 | 保留。 |
CURVECAPS | 28 | 指示设备的曲线功能的值。0设备不支持曲线。1设备可以绘制圆圈。2设备可以绘制饼楔。4设备可以绘制弦弧。8设备可以绘制省略号。16设备可以绘制宽边框。32设备可以绘制样式边框。64设备可以绘制宽度和样式的边框。128设备可以绘制内部。256设备可以绘制圆角矩形。 |
LINECAPS | 30 | 指示设备的线路功能的值,0设备不支持行。2设备可以绘制折线。4设备可以绘制标记。8设备可以绘制多个标记。16设备可以绘制宽线。32设备可以绘制带样式的线条。64设备可以绘制宽度和样式的线条。128设备可以绘制内部。 |
POLYGONALCAPS | 32 | 指示设备的多边形功能的值,0设备不支持多边形。1设备可以绘制交替填充多边形。2设备可以绘制矩形。4设备可以绘制绕组填充多边形。8设备可以绘制单个扫描线。16设备可以绘制宽边框。32设备可以绘制样式边框。64设备可以绘制宽度和样式的边框。128设备可以绘制内部。 |
TEXTCAPS | 34 | 指示设备的文本功能的值,1设备能够进行字符输出精度。2设备能够进行笔划输出精度。4设备能够进行笔划剪辑精度。8设备能够进行 90 度字符旋转。0x10设备能够进行任何字符轮换。0x20设备可以在 x 方向和 y 方向上独立缩放。0x40设备能够使用双倍字符进行缩放。0x80设备仅对字符缩放使用整数倍数。0x100设备使用任意倍数进行精确的字符缩放。0x200设备可以绘制双重字符。0x400设备可以斜体化。0x800设备可以下划线。0x1000设备可以绘制删除线。0x2000设备可以绘制光栅字体。0x4000设备可以绘制矢量字体。0x8000保留;必须为零。0x10000设备无法使用位块传输进行滚动。请注意,此含义可能与预期相反。 |
CLIPCAPS | 36 | 指示设备的剪辑功能的标志。 如果设备可以剪辑为矩形,则为 1。 否则为 0。 |
RASTERCAPS | 38 | 指示设备的光栅功能的值。1能够传输位图。2需要条带支持。4支持大于64KB的位图。8能够缩放。0x80能够支持 设置像素 和 设备位图 函数。0x100指定基于调色板的设备。0x200能够支持 指定像素 函数。0x800能够执行 伸缩传输 函数。0x1000能够执行洪水填充。0x2000能够执行 拉伸传输 函数。 |
ASPECTX | 40 | 用于线条绘制的设备像素的相对宽度。 |
ASPECTY | 42 | 用于线条绘制的设备像素的相对高度。 |
ASPECTXY | 44 | 用于线条绘制的设备像素的对角宽度。 |
SIZEPALETTE | 104 | 系统调色板中的条目数。仅当设备驱动程序在 RASTERCAPS 索引中设置RC_PALETTE位时,此索引才有效,并且仅当驱动程序与 16 位 Windows 兼容时才可用。 |
NUMRESERVED | 106 | 系统调色板中的保留条目数。 仅当设备驱动程序在 RASTERCAPS 索引中设置RC_PALETTE位时,此索引才有效,并且仅当驱动程序与 16 位 Windows 兼容时才可用。 |
COLORRES | 108 | 设备的实际颜色分辨率(以每像素位数为单位)。 仅当设备驱动程序在 RASTERCAPS 索引中设置RC_PALETTE位时,此索引才有效,并且仅当驱动程序与 16 位 Windows 兼容时才可用。 |
PHYSICALWIDTH | 110 | 对于打印设备:物理页面的宽度(以设备单位为单位)。 例如,设置为在 8.5-x11 英寸纸张上以 600 dpi 打印的打印机的物理宽度值为 5100 设备单位。 请注意,物理页面几乎总是大于页面的可打印区域,并且永远不会更小。 |
PHYSICALHEIGHT | 111 | 对于打印设备:物理页面的高度(以设备单位为单位)。 例如,设置为在 8.5 by-11 英寸纸张上以 600 dpi 打印的打印机的物理高度值为 6600 设备单位。 请注意,物理页面几乎总是大于页面的可打印区域,并且永远不会更小。 |
PHYSICALOFFSETX | 112 | 对于打印设备:从物理页面的左边缘到可打印区域的左边缘的距离(以设备单位为单位)。 例如,设置为在 8.5 乘 11 英寸纸张上以 600 dpi 打印的打印机无法在最左侧的 0.25 英寸纸张上打印,其水平物理偏移量为 150 台设备单位。 |
PHYSICALOFFSETY | 113 | 对于打印设备:从物理页面的上边缘到可打印区域的上边缘的距离(以设备单位为单位)。 例如,设置为在 8.5x11 英寸纸张上以 600 dpi 打印的打印机无法在最顶层 0.5 英寸的纸张上打印,其垂直物理偏移量为 300 个设备单位。 |
VREFRESH | 116 | 对于显示设备:设备的当前垂直刷新率,以每秒周期 (Hz) 。垂直刷新率值为 0 或 1 表示显示硬件的默认刷新率。 此默认速率通常由显示卡或计算机主板上的开关设置,或者由不使用显示功能(如 ChangeDisplaySettings)的配置程序设置。 |
SCALINGFACTORX | 114 | 打印机 x 轴的缩放因子。 |
SCALINGFACTORY | 115 | 打印机的 y 轴比例系数。 |
BLTALIGNMENT | 119 | 首选水平绘制对齐方式,表示为像素的倍数。 为了获得最佳绘制性能,窗口应水平对齐到此值的倍数。 值为零表示设备已加速,并且可以使用任何对齐方式。 |
SHADEBLENDCAPS | 120 | 指示设备的着色和混合功能的值。 |
COLORMGMTCAPS | 121 | 指示设备的颜色管理功能的值。CM_CMYK_COLOR 设备可以接受 CMYK 颜色空间 ICC 颜色配置文件。0设备不支持 ICM。1设备可以在设备驱动程序或设备本身上执行 ICM。2设备支持 取伽玛斜 和 改伽玛斜 |
光栅定义
中文名 | 英文名 | 数值 | 作用 |
黑调色板 | BLACKNESS | $00000042 | 使用与物理调色板中的0号颜色(黑色)填充目标矩形。 |
白调色板 | WHITENESS | $00FF0062 | 使用与物理调色板中的1号颜色(白色)填充目标矩形。 |
合并图层 | CAPTUREBLT | $40000000 | 在生成的图像中包括分层在窗口顶部的任何窗口。 |
反转图形 | DSTINVERT | $00550009 | 反转目标矩形。 |
合并复制 | MERGECOPY | $00C000CA | 使用布尔 AND 运算符将源矩形的颜色与当前在目标设备中选择的画笔合并。 |
反色合并 | MERGEPAINT | $00BB0226 | 使用布尔 OR 运算符将反转源矩形的颜色与目标矩形的颜色合并。 |
防止镜像 | NOMIRRORBITMAP | $80000000 | 防止对位图进行镜像。 |
反转复制 | NOTSRCCOPY | $00330008 | 将反转的源矩形复制到目标。 |
反色混合 | NOTSRCERASE | $001100A6 | 使用布尔 OR 运算符组合源矩形和目标矩形的颜色,然后反转生成的颜色。 |
填色复制 | PATCOPY | $00F00021 | 将当前在目标设备中选择的画笔复制到目标位图中。 |
混色复制 | PATINVERT | $005A0049 | 使用布尔 XOR 运算符将当前在目标设备中选择的画笔的颜色与目标矩形的颜色组合在一起。 |
加色复制 | PATPAINT | $00FB0A09 | 此操作的结果通过使用布尔 OR 运算符与目标矩形的颜色相结合。 |
降色复制 | SRCAND | $008800C6 | 使用布尔 AND 运算符组合源矩形和目标矩形的颜色。 |
原图复制 | SRCCOPY | $00CC0020 | 将源矩形直接复制到目标矩形。 |
反图复制 | SRCERASE | $00440328 | 使用布尔 AND 运算符将目标矩形的反面颜色与源矩形的颜色组合在一起。 |
混图复制 | SRCINVERT | $00660046 | 使用布尔 XOR 运算符组合源矩形和目标矩形的颜色。 |
加图复制 | SRCPAINT | $00CC0020 | 使用布尔 OR 运算符组合源矩形和目标矩形的颜色。 |
尺寸类
中文名字 | 英文名称 | 长度 | 作用解释 |
尺寸类 | SIZE | 8 | 用来存储尺寸大小的信息 |
尺寸类——成员表 | |||
---|---|---|---|
中文 | 英文 | 类型 | 作用解释 |
宽 | cx | 整数 | 尺寸大小的宽度。 |
高 | cy | 整数 | 尺寸大小的高度。 |
混合类
中文名字 | 英文名称 | 长度 | 作用解释 |
混合类 | BLENDFUNCTION | 4 | 通过指定源位图和目标位图的混合函数来控制混合。 |
混合类——成员表 | |||
---|---|---|---|
混合 | BlendOp | 字节 | 源混合操作。 目前,唯一定义的源和目标混合操作是0。 |
标志 | BlendFlags | 字节 | 必须为零。 |
透明 | SourceConstantAlpha | 字节 | 指定要用于整个源位图的透明度值0-255。 |
格式 | AlphaFormat | 字节 | 控制解释源位图和目标位图的方式。1=具有透明通道 |
顶点类
中文名字 | 英文名称 | 长度 | 作用解释 |
顶点类 | TRIVERTEX | 16 | 包含颜色信息和位置信息。 |
顶点类——成员表 | |||
---|---|---|---|
左 | x | 整数 | 矩形左上角的 x 坐标(以逻辑单位为单位)。 |
上 | y | 整数 | 矩形左上角的 y 坐标(以逻辑单位为单位)。 |
红 | Red | 整形 | x、y 点的颜色信息。 |
绿 | Green | 整形 | x、y 点的颜色信息。 |
蓝 | Blue | 整形 | x、y 点的颜色信息。 |
透 | Alpha | 整形 | x、y 点的颜色信息。 |
三角点类
中文名字 | 英文名称 | 长度 | 作用解释 |
三角点类 | GRADIENT_TRIANGLE | 12 | 指定数组中三个顶点的索引。这三个顶点构成一个三角形。 |
三角点类——成员表 | |||
---|---|---|---|
点1 | Vertex1 | 整数 | 边相交的三角形的第一个点。 |
点2 | Vertex2 | 整数 | 边相交的三角形的第二个点。 |
点3 | Vertex3 | 整数 | 边相交的三角形的第三个点。 |
矩形点类
中文名字 | 英文名称 | 长度 | 作用解释 |
矩形点类 | GRADIENT_RECT | 8 | 指定数组中两个顶点的索引。 这两个顶点构成了矩形的左上角和右下边界。 |
矩形点类——成员表 | |||
---|---|---|---|
左上 | UpperLeft | 整数 | 矩形的左上角。 |
右下 | LowerRight | 整数 | 矩形的右下角。 |
渐变填充模式
英文名称 | 数值 | 作用解释 |
GRADIENT_FILL_RECT_H | 0 | 在此模式下,两个终结点描述一个矩形。 矩形定义为具有常量颜色为左右边缘指定。 GDI 从左到右边缘插入颜色并填充内部。 |
GRADIENT_FILL_RECT_V | 1 | 在此模式下,两个终结点描述一个矩形。 矩形定义为上边缘和下边缘指定的常量颜色。GDI 将颜色从上边缘内插到下边缘,并填充内部。 |
GRADIENT_FILL_TRIANGLE | 2 |
在此模式下, 将 TRIVERTEX 结构的数组以及描述单独三角形的数组索引列表传递给 GDI。 GDI 在三角形顶点之间执行线性内插并填充内部。绘图在 24 和 32 bpp 模式下直接完成。 Dithering 在 16、8、4 和 1 bpp 模式下执行。 |
位图拉伸模式
英文名称 | 数值 | 作用解释 |
BLACKONWHITE | 1 | 使用已消除像素和现有像素的颜色值执行逻辑与运算。单色位图会以牺牲白色像素为代价保留黑色像素。 |
WHITEONBLACK | 2 | 使用已消除像素和现有像素的颜色值执行逻辑或操作。单色位图会以牺牲黑色像素为代价保留白色像素。 |
COLORONCOLOR | 3 | 删除像素。此模式会删除所有已消除的像素线,而不会尝试保留其信息。 |
HALFTONE | 4 | 将源矩形中的像素映射到目标矩形中的像素块。目标像素块上的平均颜色近似于源像素的颜色。 |