Sets resolutions for the next save operation.
#include "l_bitmap.h"
L_LTFIL_API L_INT L_SetSaveResolution(uCount, pResolutions)
Specifies the number of resolutions to be saved in a file. Or, specify 0 to save only the actual size of the image as a single dimension in the file.
Pointer to the array of DIMENSION structures which hold the resolutions to be saved.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
Currently, this function only works with the JBIG format.
A JBIG, FlashPix or PhotoCD file can contain more than one copy of the same image, each at a different physical resolution (width and height in pixels).
For JBIG files, uCount
refers to the number of resolution layers to be saved in the file. The maximum number of resolutions that can be saved is 29.
For a JBIG file, the values of different resolutions are implied because the dimensions of each resolution layer are half the dimensions of the one directly above it.
pResolutions
[0] is used to determine the highest resolution layer which will be saved in a file. You can fill pResolutions[0] with an actual width and height, or you can fill either the width or height with a valid value, and specify 0 for the other dimension to allow LEADTOOLS to calculate that dimension based on the image's aspect ratio during the next save operation. Note that for JBIG, all the values set in pResolutions are stored, but only pResolutions[0] is used during an actual file save process.
Ex.
uCount = 3
pResolution[0].nWidth = 800
pResolution[0].nHeight = 0
If you then save an image that is 1600 x 1200, the resolutions that are stored in the file would be:
Win32, x64, Linux.
This example saves the same image in three different resolutions and in three different files.
L_INT SetSaveResolutionExample(L_TCHAR * pszFilename,pBITMAPHANDLE pLeadBitmap)
{
L_INT nRet;
DIMENSION Resolutions; /* Dimension structure */
L_TCHAR szName[256]; /* File Name sting */
/* Default case,save only one resolution layer. */
nRet = L_SetSaveResolution (0, &Resolutions);
if(nRet != SUCCESS)
return nRet;
wsprintf(szName, TEXT("%s_1"),pszFilename);
nRet = L_SaveBitmap(szName,pLeadBitmap,FILE_JBIG,1,0, NULL);
if(nRet != SUCCESS)
return nRet;
/* Save 2 resolution layers,the highest resolution layer holds the image at full dimensions because
Resolutions.nWidth is equal to the FULL WIDTH of the original image */
Resolutions.nWidth= BITMAPWIDTH(pLeadBitmap);
Resolutions.nHeight=0;
wsprintf(szName, TEXT("%s_2"),pszFilename);
nRet = L_SetSaveResolution (2, &Resolutions);
if(nRet != SUCCESS)
return nRet;
nRet = L_SaveBitmap(szName,pLeadBitmap,FILE_JBIG,1,0, NULL);
if(nRet != SUCCESS)
return nRet;
/* Save 3 resolution layers,the highest resolution layer holds the image at half
the full image dimensions becuase Resolutions.nHeight is equal to HALF THE FULL HEIGHT of the original image. */
Resolutions.nWidth= 0;
Resolutions.nHeight=BITMAPHEIGHT(pLeadBitmap)/2;
wsprintf(szName, TEXT("%s_3"),pszFilename);
nRet = L_SetSaveResolution (3, &Resolutions);
if(nRet != SUCCESS)
return nRet;
nRet = L_SaveBitmap(szName,pLeadBitmap,FILE_JBIG,1,0, NULL);
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
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.