# include“l_bitmap.h”
L_LTKRN_APIL_UINT* L_CreateUserMatchTable(调色板,uColors)
创建在使用所创建的调色板时加速颜色转换的表。类引用该表L_ColorResBitmap函数。
值的数组就是你的调色板。
数组中的每个项可以有以下值之一:
价值 | 意义 |
---|---|
实际RGBQUAD值 | 使用指定的颜色作为固定颜色。 |
RGB_RESERVED | [0x01]将该项保留为空,以备以后使用。 |
RGB_EMPTY | [0x02]让L_ColorResBitmap函数填充颜色。该函数提供了优化的颜色来填充RGB_EMPTY项。 |
调色板中颜色的数量。
指向表的指针,如果函数失败则为NULL。
此函数与其他函数一起使用,顺序如下:
调用L_CreateUserMatchTable创建表。
调用L_SetUserMatchTable使它成为当前表。(将此函数作为一个单独的函数,可以将表保存在文件中,并获得所需的表,而无需重新创建它。)
调用L_ColorResBitmap使用CRF_USERPALETTE和CRF_FASTMATCHPALETTE选项。
调用L_FreeUserMatchTable当不再需要该表时。
完成的表是一个32K的整数数组。在32位系统上,它占用128K字节的内存。表的创建是一个缓慢的、内存密集型的过程,只有在多次使用自己的调色板时才有用。例如,您可能希望只创建一次表,将其保存到一个文件中,并将该文件与应用程序一起发布。
必需的dll和库
Win32, x64, Linux。
此示例使用用户自定义的选项更改位图的颜色分辨率
调色板和匹配表快速颜色匹配。
CreateUserMatchTableExample(HWND HWND, pBITMAPHANDLE pBitmap)
{
L_INT nRet;
L_UINT * pMatchTable;/*用户匹配表指针*/
RGBQUAD彩虹[64]=/* 64色彩虹调色板*/
{
{0, 0, 0, 0}, {85, 0, 0, 0}, {170, 0, 0, 0}, {255, 0, 0, 0}, {0, 85, 0, 0},
{85、85、0、0}{170、85、0,0},{255、85、0,0},{0,170,0,0},{85、170、0,0},
{170、170、0、0}{255、170、0,0},{0,255,0,0},{85、255、0,0},{170、255、0,0},
{255、255、0,0},{0,0,85,0},{85,0,85,0},{170,0,85,0},{255,0,85,0},
{0, 85, 85, 0},{85、85、85,0},{170、85、85,0},{255、85、85,0},{0,170,85,0},
{85、170、85,0},{170、170、85,0},{255、170、85,0},{0,255,85,0},
{85、255、85,0},{170、255、85,0},{255、255、85,0},{0,0,170,0},{85,0,170,0},
{170, 0, 170, 0},{255, 0, 170, 0},{0, 85, 170, 0},{85、85、170,0},{170、85、170,0},
{255、85、170,0},{0,170,170,0},{85、170、170,0},{170、170、170,0},
{255、170、170,0},{0,255,170,0},{85、255、170,0},{170、255、170,0},
{255、255、170,0},{0,0,255,0},{85,0,255,0},{170,0,255,0},{255,0,255,0},
{0, 85, 255, 0},{85、85、255,0},{170、85、255,0},{255、85、255,0},{0,170,255,0},
{85、170、255,0},{170、170、255,0},{255、170、255,0},{0,255,255,0},
{85、255、255,0},{170、255、255,0},{255、255、255,0},
};
/*创建并设置用户匹配表*/
pMatchTable = L_CreateUserMatchTable(彩虹,64);
L_SetUserMatchTable (pMatchTable);
/*使用新的调色板改变颜色分辨率。注意用户匹配表
只有在多次使用时才会使代码更快。这里只包含它
来展示如何对它进行编码。* /
nRet = L_ColorResBitmap(pBitmap, pBitmap, pBitmap,运算符(BITMAPHANDLE) 8
CRF_FLOYDSTEINDITHERING | CRF_USERPALETTE | CRF_FASTMATCHPALETTE,
彩虹,NULL, 64, NULL, NULL);
如果(nRet != SUCCESS)
返回nRet;
/*当用户匹配表不再需要时释放它*/
nRet = L_FreeUserMatchTable(pMatchTable);
如果(nRet != SUCCESS)
返回nRet;
/*获取新的调色板作为当前的油漆调色板*/
SendMessage (hWnd, WM_QUERYNEWPALETTE, 0, 0L);
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。