SHGetInverseCMAP 函数 (shlwapi.h)
[此函数可通过 Windows XP 和 Windows Server 2003 使用。 在后续版本的 Windows 中,它可能已更改或不可用。]
检索半色调调色板的反色表映射。
语法
LWSTDAPI SHGetInverseCMAP(
[out] BYTE *pbMap,
[in] ULONG cbMap
);
参数
[out] pbMap
类型: BYTE*
指向接收反颜色表映射的 BYTE数组的 指针,或指向 LPBYTE 的指针,该指针接收指向反向颜色表映射的缓存副本的指针,具体取决于 cbMap 参数的值。
[in] cbMap
类型: ULONG
pbMap 指向的缓冲区的大小,该缓冲区也定义其内容。 识别两个值。
(sizeof (BYTE*) )
pbMap 指向的缓冲区接收指向反颜色映射表的缓存副本的指针。
(32768)
pbMap 指向的缓冲区接收反颜色映射表的副本。 缓冲区的大小必须正好为 32,768 字节。
返回值
类型: HRESULT
如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
反颜色映射表是一个包含 32,768 字节的表。 它包含半色调调色板中的颜色索引。 每个索引都存储在缓冲区中对应于以 555 格式表示的特定 RGB 值的位置。 通过这些配对,可以在半色调调色板中找到与原始颜色接近的颜色。
例如,用于确定半色调调色板中与颜色 #306040 接近的颜色的方法如下:
- 将颜色分解为红色、绿色和蓝色分量。 在这种情况下,红色分量为0x30,绿色分量为0x60,蓝色分量为0x40。
- 将颜色重新组合为 555 格式。 此处显示了将 24 位 RGB 颜色减少到 555 格式的公式。
((red / 8) << 10) + ((blue / 8) << 5) + (green / 8)
在此示例中,555 格式的值为 ( (0x30 / 8) << 10) + ( (0x60 / 8) << 5) + (0x40 / 8) = 6536。
- 存储在反向颜色映射表中位置 6536 的索引值是半色调调色板中颜色的索引,该索引是颜色 #306040 的合理近似值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shlwapi.h |
Library | Shlwapi.lib |
DLL | Shlwapi.dll (5.0 或更高版本) |