Gets information about the specified file and fills the specified FILEINFO structure with the information.
#include "l_bitmap.h"
L_LTFIL_API L_INT L_FileInfo(pszFile, pFileInfo, uStructSize, uFlags, pLoadOptions)
Character string containing the input file name to query.
Pointer to the FILEINFO structure to be filled.
Note
Never pass an uninitialized FILEINFO structure to L_FileInfo.
Size in bytes, of the structure pointed to by pFileInfo
, for versioning. Use sizeof(FILEINFO).
Flag indicating which members to update in the FILEINFO structure, if any. The FILEINFO_TOTALPAGES and FILEINFO_USEFILTERDATA values can be OR-ed together, in which case both values are retrieved. Possible values are:
Value | Meaning |
---|---|
FILEINFO_TOTALPAGES | [0x0001] Update the pFileInfo->TotalPages field with the total number of pages in the file. |
FILEINFO_USEFILTERDATA | [0x0002] Use filter data information to speed up loading. |
0 | Do not update the pFileInfo ->TotalPages field. |
Pointer to optional extended load options. Pass NULL to use the default load options.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
To use this function, perform the following steps:
Declare a variable with the datatype of FILEINFO.
Declare and assign a character string variable for the file name.
If you are getting information about a multipage file (which can contain more than one image), use the LOADFILEOPTION structure to specify the page number. The information that you get will be for the image on the specified page. L_FileInfo treats an entire page as one image (although a page can contain multiple embedded images).
Initialize the FILEINFO structure to zero values and set the structure size to sizeof(FILEINFO).
If you know the file format, set FILEINFO.Flags to FILEINFO_FORMATVALID and FILEINFO.Format to the file format. This can speed up L_FileInfo because LEADTOOLS will not have to try various filters to find out which filter can handle the file.
If you do not know the file format but do know the original filename, set FILEINFO.Flags to FILEINFO_NAMEVALID and set the original file name in FILEINFO.Name. LEADTOOLS will use this as a hint and try the file formats commonly associated with that particular file extension first.
Call the L_FileInfo function, passing the file name, the address of the FILEINFO variable, and the size of the FILEINFO structure as parameters.
Get the image information from the fields described in the FILEINFO structure.
If the FILEINFO_USEFILTERDATA flag is passed to L_FileInfo, it is possible that the function will return filter data values that can be used to speed up other Load or Convert functions. See Using Filter Data to Speed up Loading Large Files for more information.
The FILEINFO_TOTALPAGES and FILEINFO_USEFILTERDATA flags can be OR-ed together. Passing both flags indicate that both the total number of pages and the filter data are to be retrieved.
Notes:
More options are available in the LOADFILEOPTION structure.
For information about loading and saving large TIFF files faster, refer to Loading and Saving Large TIFF/BigTIFF Files.
For a summary of file information functions, refer to Getting and Setting File Information.
Never pass an uninitialized FILEINFO structure to this function. It is important to initialize at least the FILEINFO.uStructSize and FILEINFO.Flags. If FILEINFO.Flags is zero, the other structure members are ignored. But if FILEINFO.Flags is not zero, one or more of the other members of the FILEINFO structure must be initialized properly.
Win32, x64, Linux.
For complete sample code, refer to the INFO example.
This example gets file information and displays it in a message box.
L_INT FileInfoExample(L_VOID)
{
L_INT nRet;
FILEINFO FileInfo; /* LEAD File Information structure. */
L_TCHAR szMessage[1024]; /* Buffer to hold information for display. */
/* Get the file information */
memset(&FileInfo, 0, sizeof(FILEINFO));
FileInfo.uStructSize = sizeof(FileInfo);
// for fast file info only, use the following:
L_EnableFastFileInfo(TRUE);
nRet = L_FileInfo(MAKE_IMAGE_PATH(TEXT("ImageProcessingDemo\\Image3.cmp")), &FileInfo, sizeof(FILEINFO), 0, NULL);
if(nRet != SUCCESS)
return nRet;
/* Format the message string with data from the FILEINFO structure */
wsprintf(szMessage, TEXT("Filename: %s\n\n")
TEXT("Format: %d\n\n")
TEXT("Width: %d\n\n")
TEXT("Height: %d\n\n")
TEXT("BitsPerPixel: %d\n\n")
TEXT("Size On Disk: %ld\n\n")
TEXT("Size In Memory: %ld\n\n")
TEXT("Compression: %s"),
(L_TCHAR *) FileInfo.Name,
FileInfo.Format,
FileInfo.Width,
FileInfo.Height,
FileInfo.BitsPerPixel,
(long)FileInfo.SizeDisk,
(long)FileInfo.SizeMem,
(L_TCHAR *) FileInfo.Compression );
/* Display the message string */
MessageBox( NULL, szMessage, TEXT("File Information"), MB_OK );
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document