画板绘图
颜色可用于传达想法、显示项目之间的关系以及提高输出的吸引力和质量。
Windows 使应用程序能够发现给定设备的颜色功能,并从最符合其需求的可用颜色中进行选择。 显示器和打印机等设备的颜色功能范围从单色到数千种颜色。 由于应用程序可能需要为整个范围内的设备生成输出,因此应准备好处理不同的颜色功能。 调色板是一个数组,其中包含标识当前可在输出设备上显示或绘制的颜色的颜色值。 调色板由能够生成许多颜色但只能在任何给定时间显示或绘制其中一部分颜色的设备使用。 对于此类设备,系统维护 一个系统调色板 来跟踪和管理设备的当前颜色。 应用程序没有直接访问系统调色板的权限。 相反,系统会将默认调色板与每个设备上下文相关联。 应用程序可以使用默认调色板中的颜色,也可以通过创建 逻辑调色板 并将其与单个设备上下文关联来定义其自己的颜色。 几乎所有应用程序都使用屏幕来显示它们操作的数据。 应用程序绘制图像、绘制图形和写入文本,以便用户可以在创建、编辑和打印数据时查看数据。 Microsoft Windows 为绘画和绘图提供了丰富的支持,但由于多任务操作系统的性质,应用程序在访问屏幕时必须相互协作。 为了保持所有应用程序顺利且协作地运行,系统会管理所有输出到屏幕。 应用程序使用窗口作为其主要输出设备,而不是屏幕本身。 系统提供与窗口唯一对应的显示设备上下文。 应用程序使用显示设备上下文将其输出定向到指定的窗口。 在窗口中绘制 (将输出定向到它) 可防止应用程序干扰其他应用程序的输出, 并允许应用程序彼此共存,同时仍充分利用系统的图形功能。中文名称 | 英文名称 | 示例 | 作用 |
调色板函数 | |||
---|---|---|---|
换调色板 | AnimatePalette | 换调色板(调色板,起始,数目,色组) | 将替换指定逻辑调色板中的条目。色板组是色板类数组的指针 |
半调色板 | CreateHalftonePalette | 色板=半调色板(设备) | 为指定的设备上下文创建一个半色调调色板。 |
创建色板 | CreatePalette | 色板=创建色板(调色类) | 使用调色类结构创建逻辑调色板。 |
调正色板 | ColorCorrectPalette | 调正色板(设备,控点,条目,数目) | 使用指定设备上下文中的 WCS 1.0 参数更正调色板的条目。 |
颜色调整 | GetColorAdjustment | 颜色调整(设备,色调) | 获取指定设备的颜色调整值。 |
调整颜色 | SetColorAdjustment | 调整颜色(设备,色调) | 使用指定数据设置设备的颜色调整值。 |
设备取色 | GetNearestColor | 颜色=设备取色(设备,颜色) | 根据设备的显示能力,取得与指定颜色最接近的一种纯色 |
色板取色 | GetNearestPaletteIndex | 色号=色板取色(色板,颜色) | 检索指定逻辑调色板中与指定颜色值最匹配的条目的索引。 |
取调色板 | GetPaletteEntries | 取调色板(色板,起始,数目,数组) | 从给定的逻辑调色板中检索指定范围的调色板条目。 |
改调色板 | SetPaletteEntries | 改调色板(色板,起始,数目,数组) | 修改逻辑调色板的一系列条目中设置颜色值和标志。 |
系统色板 | GetSystemPaletteEntries | 系统色板(设备,起始,数目,数组) | 从设备的系统调色板中检索指定范围的调色板条目。 |
色板状态 | GetSystemPaletteUse | 状态=色板状态(设备) | 检索指定设备的系统(物理)调色板的当前状态。1静态颜色,2黑白,3无静态色 |
色板标志 | SetSystemPaletteUse | 色板标志(设备,标志) | 修改系统调色板的一系列条目中设置颜色值和标志。1静态颜色,2黑白,3无静态色 |
色板映射 | RealizePalette | 色板映射(设备) | 将选项板条目从当前逻辑选项板映射到系统选项板。 |
调整色板 | ResizePalette | 调整色板(色板,条目) | 根据指定的值增加或减少逻辑调色板的条目大小。 |
选择色板 | SelectPalette | 选择色板(设备,色板,背景) | 在指定的设备中选择一个新的逻辑调色板。背景调色板为真则映射颜色到物理调色板中 |
重置画板 | UnrealizeObject | 重置画板(对象) | 可重置画笔的原点或逻辑调色板。 |
更新颜色 | UpdateColors | 更新颜色(设备) | 设备的当前颜色重新映射到当前实现的逻辑调色板来更新指定设备 |
绘图函数 | |||
刷新绘图 | GdiFlush | 刷新绘图 | 刷新调用线程的任何未决的绘图操作。 |
绘图列数 | GdiGetBatchLimit | 队列数=绘图列数 | 获取有多少个GDI绘图命令位于队列中。 |
绘图队列 | GdiSetBatchLimit | 绘图队列(100) | 指定有多少个GDI绘图命令能够进入队列 |
取背景色 | GetBkColor | 取背景色(设备) | 获取指定设备的当前背景颜色。 |
改背景色 | SetBkColor | 改背景色(设备,颜色) | 修改指定设备的背景颜色。 |
边界矩形 | GetBoundsRect | 边界矩形(设备,矩形,选项) | 获取指定设备上下文的当前累积边界矩形。选项为1清除边界 |
累积边界 | SetBoundsRect | 累积边界(设备,矩形,选项) | 获取指定设备上下文的当前累积边界矩形。选项1清除边框,2添加边框,4开启累积,8关闭累积 |
混合模式 | GetROP2 | 模式=混合模式(设备) | 获取指定设备的前景混合模式。 |
模式混合 | SetROP2 | 模式混合(设备,模式) | 设置指定设备的前景混合模式。 |
背景模式 | GetBkMode | 背景模式(设备) | 获取指定设备的背景混合填充模式。1透明,2不透明 |
模式背景 | SetBkMode | 模式背景(设备,模式) | 用指定模式填充指定设备的背景,如阴影刷子、虚线以及字符中的空隙。1透明,2不透明 |
取笔刷色 | GetDCBrushColor | 颜色=取笔刷色(设备) | 从指定的设备中获取笔刷的颜色。 |
改笔刷色 | SetDCBrushColor | 改笔刷色(设备,颜色) | 将指定设备笔刷的颜色设置为指定值。 |
颜色空间 | GetColorSpace | 空间=颜色空间(设备) | 从指定的设备中检索逻辑颜色空间的当前句柄。 |
空间颜色 | SetColorSpace | 空间颜色(设备,空间) | 给指定设备输入颜色空间。 |
取画笔色 | GetDCPenColor | 取画笔色(设备,颜色) | 从指定的设备中获取笔的颜色。 |
改画笔色 | SetDCPenColor | 改画笔色(设备,颜色) | 将指定设备画笔的颜色设置为指定值。 |
伽玛渐变 | GetDeviceGammaRamp | 伽玛渐变(设备,@颜色组) | 在具有支持硬件中可下载伽玛渐变的驱动程序的直接彩色显示板上获取伽玛渐变。 |
渐变伽玛 | SetDeviceGammaRamp | 渐变伽玛(设备,颜色组) | 在具有支持硬件中可下载伽玛渐变的驱动程序的直接彩色显示板上设置伽玛渐变。 |
检查色域 | CheckColorsInGamut | 检查色域(转换,颜色,数据,长度) | 检查指定的颜色值是否在指定设备的色域内,检查结果输出到数据字节组中 |
匹配像素 | ChoosePixelFormat | 匹配像素(设备,像素格式) | 尝试将设备上下文支持的适当像素格式与给定的像素格式规范进行匹配。 |
创建色域 | CreateColorSpaceA | 色域=创建色域(色域类) | 创建逻辑颜色空间。色域类 |
删除色域 | DeleteColorSpace | 删除色域(色域) | 删除指定的颜色空间,释放与其关联的所有内部资源。 |
设备像素 | DescribePixelFormat | 设备像素(设备,索引,长度,像素格式) | 获取有关设备的像素格式像素格式的信息。 |
枚举颜色 | EnumICMProfilesA | 枚举颜色(设备,@回调,参数) | 枚举系统支持的不同颜色配置文件 |
颜色模式 | SetICMMode | 颜色模式(设备,模式) | 指定设备的启用、禁用或查询图像颜色。 |
颜色配置 | GetICMProfileA | 颜色配置(设备,长度,名称) | 获取设备的颜色配置文件的名称。 |
配置颜色 | SetICMProfileA | 配置颜色(设备,长度,名称) | 将指定的颜色配置文件设置为指定设备的输出配置文件。 |
像素格式 | GetPixelFormat | 索引=像素格式(设备) | 获取指定设备的当前所选像素格式的索引。 |
格式像素 | SetPixelFormat | 格式像素(设备,索引,像素格式) | 将指定设备的像素格式设置为索引指定的格式。 |
交换缓冲 | SwapBuffers | 交换缓冲(设备) | 交换前缓冲区和后缓冲区。 |
更新色块 | UpdateICMRegKeyA | 更新色块(0,标识,结构,命令) | 管理系统中的颜色配置文件和颜色管理模块。 |
色板类
中文名字 | 英文名称 | 长度 | 作用解释 |
色板类 | PALETTEENTRY | 4 | 指定逻辑调色板中条目的颜色和用法。 |
色板类——成员表 | |||
---|---|---|---|
红 | peRed | 字节 | 指定调色板条目的红色强度值。 |
绿 | peGreen | 字节 | 指定调色板条目的绿色强度值。 |
蓝 | peBlue | 字节 | 指定调色板条目的绿色强度值。 |
方式 | peFlags | 字节 | 指定调色板条目的使用方式。1动态,2索引,4非系统 |
调色类
中文名字 | 英文名称 | 长度 | 作用解释 |
调色类 | LOGPALETTE | 4+ | 定义逻辑调色板。 |
调色类——成员表 | |||
---|---|---|---|
版本 | palVersion | 整形 | 指定结构的Windows版本号(目前为$300) |
数目 | palNumEntries | 整形 | 指定逻辑调色板中的条目数 |
色板 | palPalEntry[1] | 色板类 | 自定义 色板类 结构的数组 |
色域类
中文名字 | 英文名称 | 长度 | 作用解释 |
色域类 | LOGCOLORSPACE | 12 | 包含了逻辑颜色空间信息 |
色域类——成员表 | |||
---|---|---|---|
签名 | lcsSignature | 整数 | 颜色空间签名 |
版本 | lcsVersion | 整数 | 版本号,目前是$400 |
大小 | lcsSize | 整数 | 此结构的大小(以字节为单位)。 |
分类 | lcsCSType | 整数 | 颜色空间类型。1设备RGB 2设备CMYK 0标准RGB |
匹配 | lcsIntent | 整数 | 色域匹配方法。1保持饱和度 2保持图案 3保持对比度 |
端点 | lcsEndpoints | 整数 | 红色,绿色,蓝色端点。 |
红 | lcsGammaRed | 整数 | 红色坐标的比例。 |
绿 | lcsGammaGreen | 整数 | 绿色坐标的比例。 |
蓝 | lcsGammaBlue | 整数 | 蓝色坐标的比例。 |
输出 | lcsFilename | 文本 | [260]输出变量字段的数据,用于命名颜色配置文件。该成员通常设置为零 |
像素格式类
中文名字 | 英文名称 | 长度 | 作用解释 |
像素格式类 | PIXELFORMATDESCRIPTOR | 46 | 包含了逻辑字体信息的结构 |
像素格式类——成员表 | |||
---|---|---|---|
长度 | nSize | 整形 | 结构的大小 |
版本 | nVersion | 整形 | 结构的版本,一般设为1 |
标志 | dwFlags | 整数 | 表明像素缓冲特性的标志位,如缓冲是否支持GDI或OpenGL等 |
索引 | iPixelType | 整数 | 说明象素数据类型是RGBA还是颜色索引 |
颜色位 | cColorBits | 整数 | 每个颜色缓冲区中颜色位平面的数目,对颜色索引方式是缓冲区大小 |
红位数 | cRedBits | 字节 | 每个RGBA颜色缓冲区中红色位平面的数目 |
红偏移 | cRedShift | 字节 | 每个RGBA颜色缓冲区中红色位平面的偏移数 |
绿位数 | cGreenBits | 字节 | 每个RGBA颜色缓冲区中绿色位平面的数目 |
绿偏移 | cGreenShift | 字节 | 每个RGBA颜色缓冲区中绿色位平面的偏移数 |
蓝位数 | cBlueBits | 字节 | 每个RGBA颜色缓冲区中蓝色位平面的数目 |
蓝偏移 | cBlueShift | 字节 | 每个RGBA颜色缓冲区中蓝色位平面的偏移数 |
透明位 | cAlphaBits | 字节 | 每个RGBA颜色缓冲区中alpha位平面的数目(现不支持) |
透明偏移 | cAlphaShift | 字节 | 每个RGBA颜色缓冲区中alpha位平面的偏移数(现不支持) |
缓冲位 | cAccumBits | 字节 | 累加缓冲区中全部位平面的数目 |
红缓冲 | cAccumRedBits | 字节 | 累加缓冲区中红色位平面的数目 |
绿缓冲 | cAccumGreenBits | 字节 | 累加缓冲区中绿色位平面的数目 |
蓝缓冲 | cAccumBlueBits | 字节 | 累加缓冲区中蓝色位平面的数目 |
透明缓冲 | cAccumAlphaBits | 字节 | 累加缓冲区中透明位平面的数目 |
缓冲深度 | cDepthBits | 字节 | Z(深度)缓冲区的深度 |
模板深度 | cStencilBits | 字节 | 模板缓冲区的深度 |
轴向缓冲 | cAuxBuffers | 字节 | 轴向缓冲区的数量(一般1.0版本不支持) |
图层 | iLayerType | 字节 | 未使用 |
层数 | bReserved | 字节 | 表层和底层平面的数量 |
图码 | dwLayerMask | 整数 | 未使用 |
显码 | dwVisibleMask | 整数 | 是透明色彩的值(RGBA方式)或是一个底层平面的索引(Index) |
坏码 | dwDamageMask | 整数 | 未使用 |
颜色调整类
中文名字 | 英文名称 | 长度 | 作用解释 |
颜色调整类 | COLORADJUSTMENT | 40 | 定义颜色调整值。 |
颜色调整类——成员表 | |||
---|---|---|---|
大小 | caSize | 整数 | 结构的大小(以字节为单位)。 |
标志 | caFlags | 整数 | 指定应如何准备输出映像。1原始图像的底片。2将对数函数应用于输出颜色的最终密度,当亮度较低时这将增加颜色对比度。 |
光源 | caIlluminantIndex | 整数 | 查看图像时所依据的标准光源的类型。颜色调整光源 |
红加 | caRedGamma | 整数 | 指定源颜色的红色主色的第 n次 幂伽玛校正值。 该值必须在 2500 到 65,000 的范围内。 值为 10,000 表示没有伽玛校正。 |
绿加 | caGreenGamma | 整数 | 指定源颜色的绿色主色的第 n次 幂伽马校正值。 该值必须在 2500 到 65,000 的范围内。 值为 10,000 表示没有伽玛校正。 |
蓝加 | caBlueGamma | 整数 | 指定源颜色的蓝色原色的第 n次 幂伽玛校正值。 该值必须在 2500 到 65,000 的范围内。 值为 10,000 表示没有伽玛校正。 |
黑色 | caReferenceBlack | 整数 | 源颜色的黑色引用。 任何比这更深的颜色都被视为黑色。 该值必须在 0 到 4000 的范围内。 |
白色 | caReferenceWhite | 整数 | 源颜色的白色引用。 任何比这更浅的颜色都被视为白色。 该值必须在 6000 到 10,000 的范围内。 |
对比 | caContrast | 整形 | 要应用于源对象的对比度。 该值必须在 -100 到 100 的范围内。 值为 0 表示不调整对比度。 |
亮度 | caBrightness | 整形 | 要应用于源对象的亮度量。 该值必须在 -100 到 100 的范围内。 值为 0 表示不调整亮度。 |
色彩 | caColorfulness | 整形 | 要应用于源对象的色彩量。 该值必须在 -100 到 100 的范围内。 值为 0 表示没有色彩调整。 |
色调 | caRedGreenTint | 整形 | 要应用于源对象的红色或绿色色调调整量。 该值必须在 -100 到 100 的范围内。 正数向红色调整,负数向绿色调整。 零表示无色调调整。 |
颜色调整光源
英文名称 | 数值 | 作用解释 |
ILLUMINANT_DEVICE_DEFAULT | 0 | 设备的默认值。 输出设备使用的标准。 |
ILLUMINANT_A | 1 | 碳化灯。 |
ILLUMINANT_B | 2 | 中午的阳光。 |
ILLUMINANT_C | 3 | NTSC 日光。 |
ILLUMINANT_D50 | 4 | 普通打印。 |
ILLUMINANT_D55 | 5 | 债券纸打印。 |
ILLUMINANT_D65 | 6 | 标准日照。 CRT 和图片的标准。 |
ILLUMINANT_D75 | 7 | 北天。 |
ILLUMINANT_F2 | 8 | 酷白灯。 |
前景混合模式
英文名称 | 数值 | 作用解释 |
R2_BLACK | 1 | 像素始终为 0。 |
R2_NOTMERGEPEN | 2 | 像素是R2_MERGEPEN颜色的反转。 |
R2_MASKNOTPEN | 3 | 像素是屏幕和笔反面共有的颜色的组合。 |
R2_NOTCOPYPEN | 4 | 像素是触笔颜色的反转。 |
R2_MASKPENNOT | 5 | 像素是笔和屏幕反面共有的颜色的组合。 |
R2_NOT | 6 | 像素是屏幕颜色的反转。 |
R2_XORPEN | 7 | 像素是笔和屏幕中颜色的组合,但不是两者的组合。 |
R2_NOTMASKPEN | 8 | 像素是R2_MASKPEN颜色的反转。 |
R2_MASKPEN | 9 | 像素是笔和屏幕共有的颜色的组合。 |
R2_NOTXORPEN | 10 | 像素是R2_XORPEN颜色的反转。 |
R2_NOP | 11 | 像素保持不变。 |
R2_MERGENOTPEN | 12 | 像素是屏幕颜色和笔颜色反转的组合。 |
R2_COPYPEN | 13 | 像素是触笔颜色。 |
R2_MERGEPENNOT | 14 | 像素是笔颜色和屏幕颜色反转的组合。 |
R2_MERGEPEN | 15 | 像素是笔颜色和屏幕颜色的组合。 |
R2_WHITE | 16 | 像素始终为 1。 |