L_LoadMemoryTile

# 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像素。

参数

L_UCHAR* pbuf

指针指向文件在内存中加载。

pBITMAPHANDLEpBitmap

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

L_UINTuStructSize

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

L_INTnCol

左列数量的瓷砖。

L_INTnRow

上面一行的瓷砖。

L_UINTuWidth

瓷砖的宽度(以像素为单位)。

L_UINTuHeight

瓷砖的高度(以像素为单位)。

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]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_UINTuFlags

二进制信号,确定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]使用多线程加载

FILEREADCALLBACKpfnCallback

可选的回调函数进行额外的处理。

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

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

回调函数必须遵守所描述的函数原型FILEREADCALLBACK函数

L_VOID* pUserData

空指针,您可以使用它通过一个或多个回调函数需要额外的参数。

要使用该功能,赋值给一个变量或创建一个结构,其中包含你需要的尽可能多的领域。然后在这个参数,通过变量的地址或结构,铸件L_VOID*。回调函数,接收地址的pUserData参数,可以把它适当的数据类型的指针来访问变量或结构。

如果不需要额外的参数,该参数可以传递NULL。

L_SSIZE_TnBufferSize

文件在内存的大小(以字节为单位)。

pLOADFILEOPTIONpLoadOptions

指针可选的扩展加载选项。通过零使用默认加载选项。

pFILEINFOpFileInfo

指针指向一个FILEINFO结构。这种结构可以包含文件信息用于加载一个图像,或者它可能是更新信息文件被加载。

如果不知道该文件,为这个参数传递NULL或声明一个变量类型的FILEINFO并设置FILEINFO。国旗为0,然后通过FILEINFO结构这个参数的地址。在这种情况下,如果FILEINFO结构传递的地址,FILEINFO结构将被更新的结果L_FileInfo

如果文件类型,设置pFileInfo。格式的文件类型并设置pFileInfo。FILEINFO_FORMATVALID旗帜。这样做也可以,如果L_FileInfo被称为以前,但价值观影响图像加载的大小变化(例如,通过调用L_SetPCDResolutionL_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位灰度图像仅仅是可用的文档和医疗成像工具包。

注:

必需的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(位图);返回成功;}

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