L_FileInfoMemory

# include“l_bitmap.h”

L_LTFIL_APIL_INTL_FileInfoMemory (pbuf、pFileInfo uStructSize、nBufferSize uFlags, pLoadOptions)

加载文件位于内存的信息FILEINFO结构

参数

L_UCHAR* pbuf

指针的位置在内存映像文件。

pFILEINFOpFileInfo

指针领先FILEINFO结构充满图像文件的数据。

请注意:你不应该通过未初始化FILEINFO结构L_FileInfo

L_UINTuStructSize

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

L_SSIZE_TnBufferSize

引用的文件的字节数pbuf

L_UINTuFlags

标志指示是否要更新TotalPages字段FILEINFO结构。可能的值是:

价值 意义
FILEINFO_TOTALPAGES [0 x0001]更新pFileInfo - > TotalPages领域总页数的文件。
0 不更新pFileInfo- > TotalPages字段。

pLOADFILEOPTIONpLoadOptions

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

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

评论

使用此功能,请执行以下操作:

  1. FILEINFO声明一个变量的数据类型。

  2. 文件加载到内存中,并分配变量在内存中对文件的位置和文件大小。

  3. 如果你越来越多页文件信息(可以包含多个图像),使用LOADFILEOPTION结构指定页码。你得到的信息将图像上指定的页面。

  4. 初始化FILEINFO结构为零值。

  5. 调用L_FileInfoMemory函数,传递指针指向文件在内存中,的地址FILEINFOFILEINFO大小的变量,结构,和文件大小的参数。

  6. 从FILEINFO描述的领域获得图像的信息结构。

平行四边形值检索L_FileInfoMemory可能并不总是正确的,因为它取决于内存文件保存数据。函数不加载文件对象但读取文件尺寸可能不保存在内存文件。

功能的概要文件的信息,请参考获取和设置文件的信息

一些文件格式不包含一个定义良好的文件签名。特别是文档文件格式(TXT、PST等)。LEADTOOLS仍然可以检测使用文件扩展名的文件格式(例“pst”)。然而,当从内存加载文件文件名扩展不可用。为这个函数提供一个文件名扩展集pFileInfo. name和扩展和pFileInfo图像文件的名字。旗帜FILEINFO_NAMEVALID当从内存加载。

笔记:

必需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

主题

列表的函数,利用LOADFILEOPTION或SAVEFILEOPTION结构,参考函数利用LOADFILEOPTION或SAVEFILEOPTION结构

例子

为完整的示例代码,参考记忆的例子。
这个例子中加载一个暂时的位图,将其保存为一个文件在内存中,然后驻留内存文件的信息。

L_INT FileInfoMemoryExample (L_VOID){L_INT nRet;BITMAPHANDLE TmpBitmap;/ *位图句柄最初的图片* /HGLOBAL hFileInMemory =零;/ * * /内存处理L_SIZE_T uMemSize;/ *数据的大小内存* /L_TCHAR * pData;/ *指向数据的指针内存* /FILEINFO FILEINFO;/ *文件信息结构。* /L_TCHAR szMessage [1024];/ *缓冲区来保存信息显示。* // *加载位图的位/像素* /nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“ImageProcessingDemo \ \ Image3.cmp”&TmpBitmap)),运算符(BITMAPHANDLE), 0 ORDER_BGR空,空);如果(nRet ! =成功)返回nRet;/ *保存形象CMP文件内存* /nRet = L_SaveBitmapMemory (QS &hFileInMemory, &TmpBitmap FILE_CMP, 24日,&uMemSize, NULL);如果(nRet ! =成功)返回nRet;/ *免费临时位图* /如果(TmpBitmap.Flags.Allocated)L_FreeBitmap (&TmpBitmap);/ *获取指针指向的内存驻留文件* /pData = (L_TCHAR *) GlobalLock (hFileInMemory);/ *得到有关文件的信息内存* /memset (&FileInfo 0运算符(FILEINFO));FileInfo。uStructSize =运算符(FileInfo);nRet = L_FileInfoMemory ((L_UCHAR *) pData &FileInfo,运算符(FILEINFO) uMemSize 0零);如果(nRet ! =成功)返回nRet;/ * * /释放内存GlobalUnlock (hFileInMemory);/ *从FILEINFO格式的消息字符串数据结构* /wsprintf (szMessage文本(“格式:% d \ n \ n”)文本(“宽度:% d \ n \ n”)文本(“高度:% d \ n \ n”)文本(“BitsPerPixel: % d \ n \ n”)文本(文件大小:% ld \ n \ n”)文本(“位图的大小:% ld \ n \ n”)文本(“压缩:% s”),FileInfo.Format,FileInfo.Width,FileInfo.Height,FileInfo.BitsPerPixel,()FileInfo.SizeDisk,()FileInfo.SizeMem,FileInfo (L_TCHAR *)。压缩);/ *显示消息字符串* /对话框(NULL, szMessage文本(“文件信息”),MB_OK);/ * * /清理测试环境GlobalFree (hFileInMemory);返回成功;}

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