# include“l_bitmap.h”
L_LTFIL_APIL_INTL_LoadFile(pszFile, pBitmap, uStructSize, nBitsPerPixel, nOrder, uFlags, pfnCallback, pUserData, pLoadOptions, pFileInfo)
使用回调函数加载任何支持的文件。
包含要加载的图像文件名称的字符串。
指向已加载数据的位图句柄的指针。
指向的结构的字节大小pBitmap
,用于版本控制。使用sizeof (BITMAPHANDLE)。
产生的位图像素深度。以下是有效值:
价值 | 意义 |
---|---|
0 | 保持原始文件的像素深度(不要转换)。关于加载12位和16位灰度图像的特别注意事项 |
1 ~ 8 | 结果位图中每像素指定的位数 |
12 | 结果位图中每像素12位 |
16 | 结果位图中每像素16位 |
24 | 结果位图中每像素24位 |
32 | 结果位图中每像素32位 |
48 | 结果位图中每像素48位 |
64 | 结果位图中每像素64位 |
所需的颜色顺序。可能的值有:
价值 | 意义 |
---|---|
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_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]使用多线程加载 |
用于附加处理的可选回调函数。
如果不提供回调函数,则使用NULL作为该参数的值。
如果提供回调函数,则使用函数指针作为该参数的值。
回调函数必须遵循FILEREADCALLBACK函数.
可用于传递回调函数所需的一个或多个附加参数的Void指针。
若要使用此功能,请为变量赋值或创建包含所需多个字段的结构。然后,在此参数中传递变量或结构的地址,将其强制转换为L_VOID*。回调函数在其自己的pUserData参数中接收地址,可以将其强制转换为适当数据类型的指针,以访问变量或结构。
如果不需要额外的参数,则在该参数中传递NULL。
指向可选扩展加载选项的指针。传递NULL来使用默认的加载选项。
指针指向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将创建一个缓冲区并用实际图像数据填充它。一旦缓冲区满了,就会调用回调函数。
笔记:
中提供了更多选项LOADFILEOPTION结构。
有关更快地加载和保存大型TIFF文件的信息,请参见加载和保存大TIFF/BigTIFF文件.
有关如何更快地加载大文件的信息,请参阅使用过滤数据来加速加载大文件.
永远不要传递未初始化的FILEINFO这个函数的结构。
所需的dll和库
Win32, x64, Linux。
有关完整的示例代码,请参阅RESIZE示例。
这个例子使用L_LoadFile和一个回调函数来实现加载时绘制的特性。
请参考FILEREADCALLBACK函数,了解回调函数如何绘制图像数据。
/*使用的结构为回调函数的用户数据*/
类型定义结构体tagIMAGECBPARM
{
HWND 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_store
LoadImageCB,
用户数据,
空,空);
如果(nRet != SUCCESS)
返回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点
感谢您的反馈!
请重新填写表格以开始新的聊天。
所有代理当前都处于离线状态。
聊天时间:
星期一至星期五
上午8:30 -下午6点
要联系我们,请填写此表格,我们将通过电子邮件与您联系。