L_LoadFile

# include“l_bitmap.h”

L_LTFIL_APIL_INTL_LoadFile(pszFile, pBitmap, uStructSize, nBitsPerPixel, nOrder, uFlags, pfnCallback, pUserData, pLoadOptions, pFileInfo)

使用回调函数加载任何支持的文件。

参数

L_TCHAR* pszFile

包含要加载的图像文件名称的字符串。

pBITMAPHANDLEpBitmap

指向已加载数据的位图句柄的指针。

L_UINTuStructSize

指向的结构的字节大小pBitmap,用于版本控制。使用sizeof (BITMAPHANDLE)。

L_INTnBitsPerPixel

产生的位图像素深度。以下是有效值:

价值 意义
0 保持原始文件的像素深度(不要转换)。关于加载12位和16位灰度图像的特别注意事项
1 ~ 8 结果位图中每像素指定的位数
12 结果位图中每像素12位
16 结果位图中每像素16位
24 结果位图中每像素24位
32 结果位图中每像素32位
48 结果位图中每像素48位
64 结果位图中每像素64位

L_INT北方

所需的颜色顺序。可能的值有:

价值 意义
ORDER_RGB [0]红绿蓝顺序。
ORDER_BGR [1]蓝绿红顺序。
ORDER_GRAY [2] 12位或16位灰度图像。支持12位和16位灰度图像文件和医疗成像工具包。
ORDER_RGBORGRAY 将图像加载为红色,绿色,蓝色或12位或16位灰度图像。支持12位和16位灰度图像文件和医疗成像工具包。
ORDER_BGRORGRAY 将图像加载为蓝色,绿色,红色或12位或16位灰度图像。支持12位和16位灰度图像文件和医疗成像工具包。
0 数据为每像素8位或更少。
ORDER_ROMM [5] rom顺序。rom只支持24位和48位映像。
ORDER_BGRORGRAYORROMM [6]将图像加载为红色、绿色、蓝色或12位或16位灰度图像或rom。支持12位和16位灰度图像文件和医疗成像工具包。rom仅支持24位和48位彩色图像。

L_UINTuFlags

决定L_LoadFile行为的二进制标志。您可以指定以下一个或多个值:

价值 意义
LOADFILE_ALLOCATE [0x0001]函数为指定的位图分配内存。(这发生在回调函数的动作之外。)
LOADFILE_STORE [0x0002]函数将数据加载到指定的位图中。(这发生在回调函数的动作之外。)
LOADFILE_FIXEDPALETTE [0x0004]此标志将强制将托盘化的图像抖动到固定的调色板。
LOADFILE_NOINTERLACE [0x0008]函数按照显示的顺序传递图像数据,而不管它如何存储在文件中。(如果您的程序不处理隔行文件格式,请设置此标志。)
LOADFILE_ALLPAGES [0x0010]函数加载多页文件的所有页面。类创建位图列表时才使用此标志L_AppendPlayback函数。
LOADFILE_NOINITBITMAP [0x0020]函数在加载文件时没有初始化位图句柄。中提供所有必需的信息时,才使用此标志BITMAPHANDLE结构。
LOADFILE_COMPRESSED [0 x0040] (文件和医疗如果可能的话,将文件加载为1位rle压缩图像。更多信息请参考加速1位文档
LOADFILE_SUPERCOMPRESSED [0 x0080] (文件和医疗成像工具包)加载超压缩的1位、8位或24位图像。如果位图不是以1位、8位或24位加载,则忽略此标志。请注意,8位图像将被加载为灰度,即使源图像是彩色的。
LOADFILE_TILED [0x0200]先创建平铺位图为位图分配内存。
LOADFILE_NOTILED [0x0400]不要使用平铺位图
LOADFILE_DISK [0x0800]使用磁盘(如果可能)。使用硬盘空间为位图分配内存。
LOADFILE_NODISK [0x1000]不使用磁盘。
LOADFILE_MULTITHREADED [0x2000]使用多线程加载

FILEREADCALLBACKpfnCallback

用于附加处理的可选回调函数。

如果不提供回调函数,则使用NULL作为该参数的值。

如果提供回调函数,则使用函数指针作为该参数的值。

回调函数必须遵循FILEREADCALLBACK函数

L_VOID* pUserData

可用于传递回调函数所需的一个或多个附加参数的Void指针。

若要使用此功能,请为变量赋值或创建包含所需多个字段的结构。然后,在此参数中传递变量或结构的地址,将其强制转换为L_VOID*。回调函数在其自己的pUserData参数中接收地址,可以将其强制转换为适当数据类型的指针,以访问变量或结构。

如果不需要额外的参数,则在该参数中传递NULL。

pLOADFILEOPTIONpLoadOptions

指向可选扩展加载选项的指针。传递NULL来使用默认的加载选项。

pFILEINFOpFileInfo

指针指向FILEINFO结构。该结构可以包含加载图像时使用的文件信息,也可以使用正在加载的文件的相关信息进行更新。

如果对文件一无所知,则为该参数传递NULL,或者声明一个类型的变量FILEINFO并设置FILEINFO。标记为0,然后传递FILEINFO结构。在这种情况下,如果a的地址FILEINFO结构被传递,则FILEINFO结构将随着结果更新L_FileInfo

如果只知道文件类型,则设置pFileInfo。格式化为文件类型,并设置pFileInfo。标志为FILEINFO_FORMATVALID。如果之前已经调用了L_FileInfo,但是影响加载图像大小的值已经改变(例如,通过调用L_SetPCDResolution或L_SetWMFResolution),也可以这样做。在这种情况下FILEINFO的结果将被更新L_FileInfo

如果L_FileInfo在调用此函数之前被调用,并且没有对由?填充的结构的内容进行更改L_FileInfo,然后把地址填好FILEINFO结构可以作为这个参数传递。在本例中,设置FILEINFO。将成员标记为FILEINFO_INFOVALID。的L_FileInfo函数将设置FILEINFO。标志为FILEINFO_INFOVALID。在这种情况下,加载将更快,因为L_LoadFile不必为文件类型查询文件过滤器。

请注意局部变量不初始化(因为它们被放在堆栈上)。如果你有FILEINFO结构作为局部变量时,其Flags参数的值是未定义的,可能设置了FILEINFO_INFOVALID或FILEINFO_FORMATVALID。这就是为什么初始化FILEINFO很重要的原因。类的地址之前标记FILEINFO结构到函数。

返回

价值 意义
成功 函数运行成功。
< 1 发生错误。指返回代码

评论

对12位和16位灰度图像的支持仅在文件和医疗成像工具包。

在调用此函数之前,可能需要获取或设置文件信息,例如多页文件的页码或PCD文件的分辨率。指获取和设置文件信息

回调函数可以将图像显示到屏幕上,写入文件,或者做其他有用的事情。L_LoadFile将创建一个缓冲区并用实际图像数据填充它。一旦缓冲区满了,就会调用回调函数。

笔记

所需的dll和库

平台

Win32, x64, Linux。

另请参阅

功能

主题

例子

有关完整的示例代码,请参阅RESIZE示例。
这个例子使用L_LoadFile和一个回调函数来实现加载时绘制的特性。
请参考FILEREADCALLBACK函数,了解回调函数如何绘制图像数据。

/*使用的结构回调函数的用户数据*/类型定义结构体tagIMAGECBPARMHWND HWND;/*当前窗口*/HDC HDC;/*设备上下文当前窗口*/} IMAGECBPARM;静态L_INT EXT_CALLBACK LoadImageCB(pFILEINFO pFILEINFO)pBITMAPHANDLE pBitmap,L_UCHAR * pBuffer;L_UINT uFlags,L_INT nRow,L_INT在线,L_VOID * userdata)静态矩形rLeadSource;静态矩形rLeadDest;IMAGECBPARM* pData = (IMAGECBPARM*) userdata;/ *如果是第一次调用(第0行),选择并实现调色板*/如果((uFlags & FILEREAD_FIRSTPASS) && (uFlags & FILEREAD_FIRSTROW))/*设置源矩形使用整个位图*/SetRect(&rLeadSource, 0,0, pFileInfo->Width, pFileInfo->Height);/*设置dest矩形使用整个客户端区域*/GetClientRect (pData - > hwnd, &rLeadDest);}/*绘制缓冲区到指定的设备上下文*/L_PaintDCBuffer(pData->hdc, /*设备上下文-从函数参数*/pBitmap, /*位图句柄-来自函数参数*/&rLeadSource, /*全局源矩形设置WM_CREATE * /&rLeadSource, /*源剪辑矩形-与源矩形相同*/&rLeadDest, /*目标矩形-全局设置WM_CREATE * /&rLeadDest, /*目标剪辑矩形-与目标矩形相同*/SRCCOPY, /* ROP代码正常喷漆*/pBuffer, /*输入缓冲区-从函数参数*//*第一行buffer - from函数参数*/(uFlags & FILEREAD_COMPRESSED) ?-nLines: nLines);返回(成功);}L_INT LoadFileExample(HWND HWND, pBITMAPHANDLE pBitmap)L_INT nRet;静态IMAGECBPARM用户数据;/*使用的结构回调函数的用户数据*//*设置使用的用户数据回调nRet = L_LoadFile函数*/用户数据。hwnd = hwnd;/*当前窗口*/用户数据。hdc = GetDC(hWnd);/*设备上下文当前窗口*//*加载文件,调用lpfnCallBack绘制位图。* /如果(pBitmap - > Flags.Allocated)L_FreeBitmap (pBitmap);nRet = L_LoadFile(MAKE_IMAGE_PATH(TEXT))“IMAGE1。CMP”)),pBitmap,运算符(BITMAPHANDLE),0,ORDER_BGR,Loadfile_allocate | loadfile_storeLoadImageCB,用户数据,空,空);如果(nRet != SUCCESS)返回nRet;返回成功;}

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