Examines a PhotoCD file to determine which resolutions it contains.
#include "l_bitmap.h"
L_LTFIL_API L_INT L_GetPCDResolution(pszFile, pPCDInfo)
Character string containing the name of the PhotoCD file.
Pointer to the LEAD PCDINFO structure.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
Before calling this function, declare a variable for a PCDINFO structure. Then, after calling this function, look at the values in the structure to see which resolutions are available.
The PCDINFO structure is specified as follows in the LTFIL.H file:
typedef struct pcdinfo
{
L_INT resolution[6];
} PCDINFO, *pPCDINFO
The structure contains an array of integers, and the value of each integer can be 0 or 1. The following symbolic constants are defined for use as indexes into the array:
Constant Used as Index | Meaning |
---|---|
L_PCD_BASE_OVER_64 | [0] Resolution 64 x 96 |
L_PCD_BASE_OVER_16 | [1] Resolution 128 x 192 |
L_PCD_BASE_OVER_4 | [2] Resolution 256 x 384 |
L_PCD_BASE | [3] Resolution 512 x 768 |
L_PCD_4BASE | [4] Resolution 1024 x 1536 |
L_PCD_16BASE | [5] Resolution 2048 x 3072 |
Note: More options are available in the LOADFILEOPTION structure.
Win32, x64, Linux.
This example checks for a high resolution PCD image and loads it if possible
L_INT GetPCDResolutionExample(L_VOID)
{
L_INT nRet;
BITMAPHANDLE LeadBitmap; /* Bitmap handle for the final image */
PCDINFO PCDinfo; /* PCD information structure */
/* Get the PCD resolution information. (LEADTOOLS does not supply PCD files.) */
nRet = L_GetPCDResolution(MAKE_IMAGE_PATH("IMAGE1.PCD"), &PCDinfo);
if(nRet != SUCCESS)
return nRet;
/* Use high resolution if possible */
if (PCDinfo.resolution[L_PCD_4BASE])
{
nRet = L_SetPCDResolution(L_PCD_4BASE);
if(nRet != SUCCESS)
return nRet;
MessageBox( NULL, TEXT("Loading 1024 x 1536"), TEXT("Notice"), MB_OK );
}
else
{
nRet = L_SetPCDResolution(L_PCD_BASE);
if(nRet != SUCCESS)
return nRet;
MessageBox( NULL, TEXT("Loading 512 x 768"), TEXT("Notice"), MB_OK );
}
/* Load the bitmap at its own bits per pixel */
nRet = L_LoadBitmap (MAKE_IMAGE_PATH("IMAGE1.PCD"), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL);
if(nRet != SUCCESS)
return nRet;
nRet = L_SaveBitmap(MAKE_IMAGE_PATH("Result.BMP"), &LeadBitmap, FILE_BMP, 24, 0, NULL);
if(nRet != SUCCESS)
return nRet;
if(LeadBitmap.Flags.Allocated)
L_FreeBitmap(&LeadBitmap);
/* Reset the default PCD resolution */
nRet = L_SetPCDResolution(L_PCD_BASE);
if(nRet != SUCCESS)
return nRet;
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