FILEREADCALLBACK

# include“l_bitmap.h”

L_INTpEXT_CALLBACKYourFunction (pFileInfo, pBitmap, pBuffer, uFlags, nRow, nLines, pUserData)

处理调用函数写入缓冲区的输出图像数据。

参数

pFILEINFOpFileInfo

指向包含图像信息的FILEINFO结构的指针。

pBITMAPHANDLEpBitmap

指向位图句柄的指针,该句柄引用包含图像信息的位图。

L_UCHAR* pbuf

一个指向缓冲区的指针,其中包含调用函数已经处理(读取或解压缩)的一行或多行输出图像数据。

L_UINTuFlags

标记,描述这是回调的第一次调用还是最后一次调用,以及缓冲区包含图像数据的第一行还是最后一行。以下是可能的标志:

常数 意义
FILEREAD_FIRSTPASS [0x0001]这是第一次通过渐进式JPEG或CMP文件。
FILEREAD_LASTPASS [0x0002]这是通过渐进式JPEG或CMP文件的最后一次传递。
FILEREAD_FIRSTROW [0x0004]缓冲区的第一行就是位图的第一行。
FILEREAD_LASTROW [0x0008]缓冲区的最后一行是位图的最后一行。
FILEREAD_COMPRESSED [0x0010]缓冲区中的数据是1位压缩数据,您可以按照加速1位文档

L_INTnRow

缓冲区中第一行的当前位图行号。

L_INT在线

pBuffer缓冲区中的行数。

L_VOID* pUserData

一个空指针,可用于访问包含回调函数所需数据的变量或结构。这为您提供了一种从使用此回调函数的函数间接接收数据的方法。(这是传递给调用函数的pUserData参数的同一个指针。)

请记住,这是一个空指针,必须在回调函数中转换为适当的数据类型。

返回

价值 意义
成功 活动很成功。
< 1 发生错误。指返回代码

评论

有几个LEADTOOLS函数使用这种类型的回调函数。在某些情况下,pBuffer缓冲区包含回调函数必须输出的数据,以便调用函数完成任何任务。在其他情况下,回调是可选的,回调获得数据的副本,并且回调的输出是调用函数输出的补充。请参阅调用函数的描述,以了解它如何使用回调。

FILEINFO结构传递给FILEREADCALLBACK函数时不包含总页数。要获得总页数,您应该调用LFile: GetInfo并设置FILEINFO_TOTALPAGES标志。

平台

Win32, x64

另请参阅

功能

例子

这个FILEREADCALLBACK函数在加载图像时绘制图像

/**************** 全局声明  **************************************//*使用的结构回调函数的用户数据*/类型定义结构体tagIMAGECBPARMHWND HWND;/*当前窗口*/HDC HDC;/*设备上下文当前窗口*/L_INT nRow;/*第一行输入缓冲区*/HPALETTE hpalPaint;/*调色板手柄*/实例句柄hInst;/*应用程序的当前实例,由InitInstance函数设置矩形rLeadDest;/*目标矩形绘画* /矩形rLeadSource;/*源矩形绘画* /} IMAGECBPARMEX;/*******************************************************************************/L_INT EXT_CALLBACK load magecbpBITMAPHANDLE pBitmap, L_UCHAR *pBuffer,L_UINT uFlags, L_INT nRow, L_INT nLines, IMAGECBPARMEX * pUserDataUNREFERENCED_PARAMETER(在线);UNREFERENCED_PARAMETER (nRow);UNREFERENCED_PARAMETER (pbuf);UNREFERENCED_PARAMETER (pBitmap);/ *如果是第一次调用(第0行),选择并实现调色板*/如果((uFlags & FILEREAD_FIRSTPASS) && (uFlags & FILEREAD_FIRSTROW))/*设置源矩形使用整个位图*/SetRect(&pUserData->rLeadSource, 0,0, pFileInfo->Width, pFileInfo->Height);SendMessage (pUserData->hwnd, WM_QUERYNEWPALETTE, 0,0l);SelectPalette(pUserData->hdc, pUserData->hpalPaint, TRUE);RealizePalette (pUserData - > hdc);/*绘制缓冲区到指定的设备上下文*/LBitmapBase LeadBitmap (pBitmap);LPaint (&LeadBitmap, pUserData->hdc);(pBuffer, nLines * pBitmap->BytesPerLine);LeadBitmap.SetSrcRect (&pUserData - > rLeadSource);LeadBitmap.SetClipSrcRect (&pUserData - > rLeadSource);LeadBitmap.SetDstRect (&pUserData - > rLeadDest);LeadBitmap.SetClipDstRect (&pUserData - > rLeadDest);LeadPaint。PaintDCBuffer(LeadBuffer, nRow, nLines, SRCCOPY);返回(成功);

LEADTOOLS DICOM c++类库帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。