L_PaintDCCMYKArrayCallback

# include“l_bitmap.h”

L_LTDIS_APIL_INTL_PaintDCCMYKArrayCallback (pCallbackData, ppBitmapArray, uBitmapArrayCount, pSrc, pClipSrc, pDst, pClipDst, uROP3, hClrHandle);

使用绘制回调显示任意大小的CMYK位图数组。

参数

pPAINTCALLBACKDATApCallbackData

指向包含设备上下文(DC)和绘制回调的结构的指针。设备上下文的映射模式必须为MM_TEXT。

pBITMAPHANDLE* ppBitmapArray

指向包含每个平面的位图的指针数组的指针。数组中应该有4或5个成员,这取决于是否要使用alpha通道信息进行绘制。

所有位图必须具有相同的宽度,高度,每像素位和调色板。uBitmapArrayCount指示数组中存储了多少个指针。位图的顺序是:C, M, Y, K, Alpha(可选)。

L_UINTuBitmapArrayCount

中出现的位图数ppBitmapArray

L_RECT* pSrc

指向Windows RECT结构的指针,该结构指定要用作显示源的位图部分。

RECT结构中的坐标是相对于位图的。您可以传递NULL来使用默认值,它与位图匹配。

L_RECT* pClipSrc

指向Windows RECT结构的指针,该结构指定要绘制的显示源的部分。通常,这用于在源位图的部分发生变化时更新显示。

RECT结构中的坐标是相对于位图的。您可以传递NULL来使用默认值,它与位图匹配。

L_RECT* pDst

指向Windows RECT结构的指针,该结构决定源矩形如何缩放以及图像如何在设备上下文中定位。

RECT结构中的坐标是相对于设备上下文的。该参数没有默认值。必须指定RECT结构。

L_RECT* pClipDst

指向Windows RECT结构的指针,该结构指定要绘制的显示矩形的部分。通常,这用于更新显示表面的更改,例如当用户移动另一个窗口时,将显示被覆盖的图像的一部分。

RECT结构中的坐标是相对于设备上下文的。您可以传递NULL来使用默认值,它与设备上下文匹配。然而,在大多数情况下,你应该使用Windows WM_PAINT消息返回的矩形。

L_UINT32uROP3

决定如何更新目标矩形的Windows ROP代码。该参数的代码与Windows BitBlt函数相同。对于普通绘画,使用SRCCOPY。

L_HANDLEhClrHandle

可选的颜色转换手柄,用于在绘制期间将CMYK数据转换为BGR。传递NULL以让LEADTOOLS使用内置的颜色转换函数。

如果传递hClrHandle != NULL且LTCLR缺失,该函数将返回ERROR_INV_COLORSPACE错误代码。

返回

价值 意义
成功 活动很成功。
ERROR_LTCLR_MISSING 无法加载LTCLR DLL。
< 1 发生错误。指返回代码

评论

数据会自动转换为BGR并抖动(如果需要),而不会影响数组中的位图。

位图数组通常使用L_LoadFileCMYKArray

有关源参数和矩形参数行为的更多信息,请参阅函数L_PaintDC

Windows只能绘制BGR数据。因此,在涂装过程中有必要将CMYK数据转换为BGR。注意,绘制已经是BGR的常规位图比绘制CMYK位图数组要快。

颜色转换可以使用颜色转换C API来执行。有关更多信息,请参阅颜色转换帮助文件.这些转换是准确的,但比内置的CMYK->RGB转换公式慢。

要使用准确的转换,使用创建一个颜色句柄L_ClrInit并将其传递为hClrHandle

要使用快速转换,为hClrHandle传递NULL。

但是请注意,传递一个真正的hClrHandle和为hClrHandle使用NULL之间有一个明显的区别。另外,确保您创建了一个正确的颜色CMYK->BGR转换句柄。

当不再需要句柄hClrHandle时,应该通过调用释放它L_ClrFree

必需的dll和库

平台

x64 Win32。

另请参阅

功能

主题

例子

这个例子将加载并绘制一个CMYK位图数组。颜色转换使用准确(较慢)的方法。
该示例将不执行任何错误检查,以使代码更易于理解。

静态L_INT ClrInit(HANDLE* phClrHandle)CONVERSION_PARAMS convparams;CMYK_PARAMS CmykParams;memset (&convparams 0运算符(convparams));convparams。uStructSize =运算符(convparams);CmykParams。uStructSize =运算符(CMYK_PARAMS);CmykParams。nMask = CMYK_GCR;CmykParams。nGcr_level = 175;/* 17.5% GCR价值* /convparams。pCmykParams = &CmykParams;convparams。nMethod = USE_ICC;convparams。nActiveMethod = USE_ICC;返回L_ClrInit (phClrHandle, CCS_CMYK, CCS_BGR, &convparams);L_INT PaintDCCMYKArrayCallbackExampleBitmapC, BitmapM, bitmapp, BitmapK;pBITMAPHANDLE CMYKArray[4] = {&BitmapC, &BitmapM, & bitmapp, &BitmapK};L_UINT u;处理hClrHandle;L_INT nRet;//加载CMYK数组nRet = L_LoadFileCMYKArray(MAKE_IMAGE_PATH(TEXT(“等\ \ src_cmyk_image.tif”)), CMYKArray, 4,运算符(bitmaphandle), 8, loadfile_allocate | loadfile_store, null, null, null, null);如果(nRet != SUCCESS)返回nRet;HDC HDC = GetDC(hWnd);//获取窗口DC//设置目标矩形与每个平面相同(100%缩放)矩形rcDst;SetRect(&rcDst, 0,0, BitmapC。宽度,BitmapC.Height);//创建颜色转换句柄nRet = ClrInit(&hClrHandle);如果(nRet != SUCCESS)返回nRet;/*初始化油漆回调数据结构*/PAINTCALLBACKDATA PAINTCALLBACKDATA;/*绘制回调数据结构*/memset (&PaintCallbackData 0运算符(PaintCallbackData));PaintCallbackData。uStructSize =运算符(PAINTCALLBACKDATA);PaintCallbackData。pDisplay = hDC;nRet = L_PaintDCCMYKArrayCallback(&PaintCallbackData, CMYKArray, 4, NULL, NULL, &rcDst, NULL, SRCCOPY, hClrHandle);//释放颜色转换手柄如果(hClrHandle != NULL)L_ClrFree (hClrHandle);//释放DCReleaseDC (hWnd, hDC);//释放由L_LoadFileCMYKArray分配的CMYK数组(u = 0;U < 4;u + +)L_FreeBitmap (CMYKArray (u));返回nRet;

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