将 GDI 函数与 WCS 一起使用
图形设备接口 (使用或操作颜色数据的 GDI) 中有多种功能。 有些启用了与 WCS 一起使用,而有些则不支持。 以下 GDI 函数与 ICM 相关:
使用 WCS 的设备上下文函数
函数 | 说明 |
---|---|
CreateCompatibleDC | 如果设备上下文 (通过其 hdc 参数传递给此函数的 DC) 为 ICM 启用,则该函数创建的 DC 也已启用 ICM。 源和目标颜色空间在 DC 中指定。 |
CreateDC | 可以通过将 pInitData 参数指向的 DEVMODE 结构的 dmICMMethod 成员设置为适当的值来启用 ICM。 有关详细信息,请参阅有关 DEVMODE 结构的平台 SDK 中的文档。 |
ResetDC | hdc 参数指定的设备上下文的颜色配置文件将根据 lpInitData 参数指定的 DEVMODE 结构中的信息进行重置。 |
使用 WCS 的笔和画笔函数
函数 | 说明 |
---|---|
画笔函数 | 创建画笔时不执行颜色管理。 但是,将画笔选入启用了 ICM 的 DC 时,将执行颜色管理。 |
CreatePen | 创建笔时不执行颜色管理。 但是,将画笔选入启用了 ICM 的 DC 时,将执行颜色管理。 |
ExtCreatePen | 创建笔时不执行颜色管理。 但是,将画笔选入启用了 ICM 的 DC 时,将执行颜色管理。 |
SelectObject | 如果要选择的对象是画笔或笔,则执行颜色管理。 |
SetDCBrushColor | 如果启用了 WCS,则执行颜色管理。 |
SetDCPenColor | 如果启用了 WCS,则执行颜色管理。 |
使用 WCS 的文本输出函数
函数 | 说明 |
---|---|
SetBkColor | 如果启用了 WCS,则执行颜色管理。 |
SetTextColor | 如果启用了 WCS,则执行颜色管理。 |
使用 WCS 的位图函数
函数 | 说明 |
---|---|
BitBlt | 发生 blits 时,不执行颜色管理。 |
CreateDIBitmap | fuUsage 参数指定 lpbmi 参数指向的 BITMAPINFO 结构的 bmiColors 成员包含或不包含颜色信息。 如果没有,则不对此位图执行颜色管理。 位图必须使用 BITMAPINFO 结构版本 4 或版本 5 才能启用颜色管理。 创建位图后,生成的位图的内容与颜色不匹配。 |
CreateDIBSection | 如果通过 pbmi 参数传递的 BITMAPINFO 结构不是版本 4 或版本 5,则不执行颜色管理。 如果是版本 4 或 5,则启用颜色管理,并且指定的颜色空间与位图相关联。 |
MaskBlt | 发生 blits 时,不执行颜色管理。 |
SelectObject | 如果对象是使用 CreateDIBSection 创建的位图,则执行颜色管理。 位图的颜色空间用作目标颜色空间。 |
SetDIBits | 执行颜色管理。 如果指定的 BITMAPINFO 结构不是版本 4 或版本 5,则当前 DC 的颜色配置文件将用作源颜色空间配置文件。 如果没有,则使用 sRGB 空间。 如果指定的 BITMAPINFO 结构为版本 4 或版本 5,则位图标头中指定的颜色空间配置文件将用作源颜色空间配置文件。 |
SetDIBitsToDevice | 执行颜色管理。 如果指定的 BITMAPINFO 结构不是版本 4 或版本 5,则当前设备上下文的颜色配置文件将用作源颜色空间配置文件。 如果没有,则使用 sRGB 颜色空间。 如果指定的 BITMAPINFO 结构为版本 4 或版本 5,则与位图关联的颜色空间配置文件将用作源颜色空间。 |
SetDIBColorTable | 不执行颜色管理。 |
StretchBlt | 发生 blits 时,不执行颜色管理。 |
StretchDIBits | 执行颜色管理。 如果指定的 BITMAPINFO 结构不是版本 4 或版本 5,则当前 DC 的颜色配置文件将用作源颜色空间配置文件。 如果没有,则使用 sRGB 空间。 如果指定的 BITMAPINFO 结构为版本 4 或版本 5,则位图标头中指定的颜色空间配置文件将用作源颜色空间配置文件。 |