L_CreateUserMatchTable

# include“l_bitmap.h”

L_LTKRN_APIL_UINT* L_CreateUserMatchTable(调色板,uColors)

创建在使用所创建的调色板时加速颜色转换的表。类引用该表L_ColorResBitmap函数。

参数

L_RGBQUAD* pPalette

值的数组就是你的调色板。

数组中的每个项可以有以下值之一:

价值 意义
实际RGBQUAD值 使用指定的颜色作为固定颜色。
RGB_RESERVED [0x01]将该项保留为空,以备以后使用。
RGB_EMPTY [0x02]让L_ColorResBitmap函数填充颜色。该函数提供了优化的颜色来填充RGB_EMPTY项。

L_UINTuColors

调色板中颜色的数量。

返回

指向表的指针,如果函数失败则为NULL。

评论

此函数与其他函数一起使用,顺序如下:

  1. 调用L_CreateUserMatchTable创建表。

  2. 调用L_SetUserMatchTable使它成为当前表。(将此函数作为一个单独的函数,可以将表保存在文件中,并获得所需的表,而无需重新创建它。)

  3. 调用L_ColorResBitmap使用CRF_USERPALETTE和CRF_FASTMATCHPALETTE选项。

  4. 调用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) 8CRF_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);返回成功;

栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。