# include“l_bitmap.h”
L_LTDIS_APIL_INTL_PaintDCCMYKArrayCallback (pCallbackData, ppBitmapArray, uBitmapArrayCount, pSrc, pClipSrc, pDst, pClipDst, uROP3, hClrHandle);
使用绘制回调显示任意大小的CMYK位图数组。
指向包含设备上下文(DC)和绘制回调的结构的指针。设备上下文的映射模式必须为MM_TEXT。
指向包含每个平面的位图的指针数组的指针。数组中应该有4或5个成员,这取决于是否要使用alpha通道信息进行绘制。
所有位图必须具有相同的宽度,高度,每像素位和调色板。uBitmapArrayCount
指示数组中存储了多少个指针。位图的顺序是:C, M, Y, K, Alpha(可选)。
中出现的位图数ppBitmapArray
.
指向Windows RECT结构的指针,该结构指定要用作显示源的位图部分。
RECT结构中的坐标是相对于位图的。您可以传递NULL来使用默认值,它与位图匹配。
指向Windows RECT结构的指针,该结构指定要绘制的显示源的部分。通常,这用于在源位图的部分发生变化时更新显示。
RECT结构中的坐标是相对于位图的。您可以传递NULL来使用默认值,它与位图匹配。
指向Windows RECT结构的指针,该结构决定源矩形如何缩放以及图像如何在设备上下文中定位。
RECT结构中的坐标是相对于设备上下文的。该参数没有默认值。必须指定RECT结构。
指向Windows RECT结构的指针,该结构指定要绘制的显示矩形的部分。通常,这用于更新显示表面的更改,例如当用户移动另一个窗口时,将显示被覆盖的图像的一部分。
RECT结构中的坐标是相对于设备上下文的。您可以传递NULL来使用默认值,它与设备上下文匹配。然而,在大多数情况下,你应该使用Windows WM_PAINT消息返回的矩形。
决定如何更新目标矩形的Windows ROP代码。该参数的代码与Windows BitBlt函数相同。对于普通绘画,使用SRCCOPY。
可选的颜色转换手柄,用于在绘制期间将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 PaintDCCMYKArrayCallbackExample
{
BitmapC, 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);
//释放DC
ReleaseDC (hWnd, hDC);
//释放由L_LoadFileCMYKArray分配的CMYK数组
为(u = 0;U < 4;u + +)
L_FreeBitmap (CMYKArray (u));
返回nRet;
}
帮助收藏
光栅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点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。