# include“l_bitmap.h”
L_LTFIL_APIL_INTL_LoadMemoryTile (pbuf、pBitmap uStructSize、nCol nRow, uWidth, uHeight, nBitsPerPixel,北方,uFlags, pfnCallback, pUserData, nBufferSize, pLoadOptions, pFileInfo)
加载图像文件的一个部分(任何格式),使用一个回调函数。节始于(nCol
,nRow
)和扩展uWidth
像素和uHeight
像素。
指针指向文件在内存中加载。
加载的位图句柄指针数据。
结构大小的字节,指向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]Blue-green-red秩序。 |
ORDER_GRAY | [2]12或16位灰度图像。12和16位灰度图像只支持文档和医疗成像工具包。 |
0 | 数据是8位/像素或更少。 |
ORDER_RGBORGRAY | [3]加载形象红、绿、蓝或12或16位灰度图像。支持12和16位灰度图像文档和医疗成像工具包。 |
ORDER_BGRORGRAY | [4]加载形象蓝色、绿色、红色或12或16位灰度图像。支持12和16位灰度图像文档和医疗成像工具包。 |
ORDER_ROMM | [5]罗姆秩序。罗姆只支持24和48比特位图像。 |
ORDER_BGRORGRAYORROMM | [6]加载形象红、绿、蓝或12或16位灰度图像或罗姆。支持12和16位灰度图像文档和医疗成像工具包。罗姆只支持24和48比特位彩色图像。 |
二进制信号,确定L_LoadMemoryTile的行为。您可以指定一个或多个下列值:
价值 | 意义 |
---|---|
LOADFILE_ALLOCATE | [0 x0001]函数指定位图分配内存。(设置LOADFILE_STORE标志将会覆盖这个标志。) |
LOADFILE_STORE | [0 x0002]函数将数据加载到指定的位图。(这发生在你的回调函数的行为。) |
LOADFILE_FIXEDPALETTE | [0 x0004]这个标志将迫使一个托盘化图像固定面板犹豫不决。 |
LOADFILE_NOINTERLACE | [0 x0008]函数通过图像数据的顺序显示,不管它是如何存储在文件中。(如果您的程序设置这个标志不处理隔行文件格式)。 |
LOADFILE_ALLPAGES | [0 x0010]函数加载所有页面的多页文件。使用这个标志只有当你创建一个位图使用列表L_AppendPlayback函数。 |
LOADFILE_NOINITBITMAP | [0 x0020]函数不初始化加载文件时位图句柄。使用这个标志只有如果你提供所有必需的信息BITMAPHANDLE结构。 |
LOADFILE_COMPRESSED | [0 x0040] (文档和医疗成像工具包)如果可能,加载文件作为比特RLE-compressed形象。有关更多信息,请参考加速1比特文件。 |
LOADFILE_SUPERCOMPRESSED | [0 x0080] (文档和医疗或24位图像成像工具包)加载出超级压缩。这个标志将被忽略,如果1比特或24位位图不加载。 |
LOADFILE_MULTITHREADED | [0 x2000]使用多线程加载 |
可选的回调函数进行额外的处理。
如果你不提供一个回调函数,使用NULL作为该参数的值。
如果你提供一个回调函数,使用函数指针作为该参数的值。
回调函数必须遵守所描述的函数原型FILEREADCALLBACK函数。
空指针,您可以使用它通过一个或多个回调函数需要额外的参数。
要使用该功能,赋值给一个变量或创建一个结构,其中包含你需要的尽可能多的领域。然后在这个参数,通过变量的地址或结构,铸件L_VOID*。回调函数,接收地址的pUserData参数,可以把它适当的数据类型的指针来访问变量或结构。
如果不需要额外的参数,该参数可以传递NULL。
文件在内存的大小(以字节为单位)。
指针可选的扩展加载选项。通过零使用默认加载选项。
指针指向一个FILEINFO结构。这种结构可以包含文件信息用于加载一个图像,或者它可能是更新信息文件被加载。
如果不知道该文件,为这个参数传递NULL或声明一个变量类型的FILEINFO并设置FILEINFO。国旗为0,然后通过FILEINFO结构这个参数的地址。在这种情况下,如果FILEINFO结构传递的地址,FILEINFO结构将被更新的结果L_FileInfo。
如果文件类型,设置pFileInfo。格式的文件类型并设置pFileInfo。FILEINFO_FORMATVALID旗帜。这样做也可以,如果L_FileInfo被称为以前,但价值观影响图像加载的大小变化(例如,通过调用L_SetPCDResolution或L_SetWMFResolution)。在这种情况下,指着FILEINFO结构pFileInfo L_FileInfo的结果将被更新。
如果L_FileInfo被称为调用这个函数之前,并没有改变的内容结构由L_FileInfo,然后填写的地址FILEINFO结构为这个参数可以传递。在这种情况下,FILEINFO。旗帜应该设置为FILEINFO_INFOVALID成员。将FILEINFO L_FileInfo函数。FILEINFO_INFOVALID旗帜。在这种情况下,负载将更快因为这个函数没有查询文件类型的文件过滤器。
请注意:局部变量没有初始化(因为它们放在堆栈)。如果你有一个FILEINFO结构作为一个局部变量,其标志参数的值是未定义的,可能有FILEINFO_INFOVALID或FILEINFO_FORMATVALID集。这就是为什么重要的是初始化FILEINFO。旗帜之前FILEINFO结构函数的地址。
价值 | 意义 |
---|---|
成功 | 函数是成功的。 |
< 1 | 一个错误发生。指返回代码。 |
这个函数非常相似L_LoadFileTile,除了它加载的图像缓冲区,而不是一个文件。
支持12和16位灰度图像仅仅是可用的文档和医疗成像工具包。
注:
更多的选项可用LOADFILEOPTION结构。
你不应该通过未初始化FILEINFO这个函数。
必需的dll和库
Win32 x64, Linux。
加载图像的一部分没有加载整个图像。
/ /读取文件的缓冲区。为了简单,减少了错误检查
L_INT ReadFileIntoBuffer (L_UCHAR * pbuf L_OFFSET nBufferSize, L_TCHAR * pszFile)
{
DWORD dwBytesRead;
处理hFile =它仅仅(pszFile GENERIC_READ 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
如果(hFile = = INVALID_HANDLE_VALUE)
返回ERROR_FILENOTFOUND;
ReadFile (hFile, pbuf(字)nBufferSize &dwBytesRead, NULL);
CloseHandle (hFile);
返回成功;
}
L_INT LoadMemoryTileExample (L_VOID)
{
L_INT nRet;
BITMAPHANDLE位图;
FILEINFO FILEINFO;
L_UCHAR * pbuf;/ *指针指向内存中的数据* /
TCHAR * pszFileName = MAKE_IMAGE_PATH(文本(“clean.tif”));
memset (&FileInfo 0运算符(FILEINFO));
FileInfo。uStructSize =运算符(FileInfo);
nRet = L_FileInfo (pszFileName &FileInfo,运算符(FILEINFO), 0, NULL);
如果(nRet ! =成功)
返回nRet;
/ /分配一个足够大的内存缓冲区包含文件
pbuf = (L_UCHAR *) malloc ((SIZE_T) FileInfo.SizeDisk);
如果(pbuf !)
返回ERROR_NO_MEMORY;
nRet = ReadFileIntoBuffer (pbuf FileInfo。SizeDisk pszFileName);
如果(nRet ! =成功)
{
免费(pbuf);
返回nRet;
}
/ /从一个图像加载1/2(中心)
nRet = L_LoadMemoryTile (pbuf,位图,运算符(BITMAPHANDLE) FileInfo。宽/ 4,FileInfo。高度/ 4,(FileInfo.Width) / 2, (FileInfo.Height) / 2, 0, ORDER_BGR, LOADFILE_ALLOCATE | LOADFILE_STORE,空,空,FileInfo (L_SSIZE_T)。零,SizeDisk &FileInfo);
如果(nRet ! =成功)
{
免费(pbuf);
返回nRet;
}
免费(pbuf);/ /释放内存缓冲区,当我们完成它
nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“Result.BMP”))、位图、FILE_BMP, 24岁,0,NULL);
如果(nRet ! =成功)
返回nRet;
如果(Bitmap.Flags.Allocated)
L_FreeBitmap(位图);
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。