操作面板的变化

当你画一个图像设备的256种颜色,使用当前系统调色板。这个主题描述了如何确保当前系统调色板是您想要使用的。

首先,考虑到LEADTOOLS给你以下两个选择绘画256颜色或更少的设备:

一般来说,下面的执行顺序确保当前系统调色板是一个您想要使用:

  1. 将显示模式设置为开启或关闭固定面板当绘画图像。

    / /下面的代码打开导致固定面板:L_SetDisplayMode(DISPLAYMODE_FIXEDPALETTE DISPLAYMODE_FIXEDPALETTE);/ /下面的代码关闭导致固定面板:L_SetDisplayMode(DISPLAYMODE_FIXEDPALETTE, 0);

  2. 创建的调色板。的L_CreatePaintPalette函数返回一个你想使用的调色板的句柄。如果固定面板打开,这总是固定调色板的句柄。否则它是最好的可用的面板为指定的图像。下面的代码显示了变量声明和函数调用。(变量是依赖于应用程序的范围;他们一起在这里为了简单起见所示。)

    HWND HWND;/ *当前窗口,通常指定一个函数参数* /BITMAPHANDLE LeadBitmap;/ *位图句柄加载图像。* /HPALETTE hpalPaint;/ *漆面板处理。* /HDC HDC;/ * * /设备上下文hdc = GetDC (hWnd);&LeadBitmap hpalPaint = L_CreatePaintPalette (hdc);

  3. 选择和实现系统调色板,使用面板返回的句柄L_CreatePaintPalette函数。下面显示了所需的函数调用(没有一个正常的管家):

    SelectPalette (hdc hpalPaint,假);RealizePalette (hdc);

  4. 叫LEADTOOLS绘画功能之一。下面的例子使用矩形变量定义在其他地方,在评论中所描述的:

    L_PaintDC (hdc&LeadBitmap,源矩形&rLeadSource, / * * /空,/ * * /默认源剪辑区域&rLeadDest, / *目标矩形* /ps。rcPaint, / *目的地设定的剪裁WM_PAINT * /SRCCOPY);/ *正常的油漆* /

通常上述执行顺序处理的代码窗口面板和绘画消息:WM_PALETTECHANGED WM_QUERYNEWPALETTE, WM_PAINT。的演示的例子示例程序展示了如何实现这些。

然而,在某些情况下,如实现paint-while-load功能,更有效的创建、选择、和实现调色板不通过消息处理。例如,参考FILEREADCALLBACK函数。

请注意,如果你是画一个16位灰度图像到24位设备,您必须调用L_CreatePaintPalette之前你叫L_PaintDC

LEADTOOLS为复制调色板提供了两个函数。的L_DupPalette面板功能重复指定的窗口。的L_DupBitmapPalette指定位图的功能重复的窗户面板。

LEADTOOLS光栅成像C API的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。