THUMBOPTIONS

typedef struct thumboptions
{
   L_UINT uStructSize;
   L_INT nThumbWidth; /* thumbnail width */
   L_INT nThumbHeight; /* thumbnail height */
   L_INT nBits; /* thumbnail bits per pixel */
   L_UINT32 uCRFlags; /* color resolution flags */
   L_BOOL bMaintainAspect; /* aspect ratio flag */
   L_BOOL bForceSize; /* force size flag */
   COLORREF crBackColor; /* background color */
   L_BOOL bLoadStamp; /* load stamp flag */
   L_BOOL bResample; /* resample flag */
} THUMBOPTIONS, L_FAR * pTHUMBOPTIONS;

The THUMBOPTIONS structure is used by the LFile::CreateThumbnail and the LFile::CreateThumbnailCallBack functions to specify the thumbnail creation options.

Member

Description

uStructSize

Size of this structure in bytes. Use the sizeof() macro to calculate this value.

nThumbWidth

Width of the thumbnail to create. This value is measured in pixels.

nThumbHeight

Height of the thumbnail to create. This value is measured in pixels.

nBits

Resulting bitmap pixel depth. The following are valid values:

 

 

Value

Meaning

 

0

Default bits per pixel stored in the file

 

1 to 8

The specified bits per pixel in the resultant bitmap

 

12

12 bits per pixel in the resultant bitmap.

 

16

16 bits per pixel in the resultant bitmap

 

24

24 bits per pixel in the resultant bitmap

 

32

32 bits per pixel in the resultant bitmap

 

48

48 bits per pixel in the resultant bitmap

 

64

64 bits per pixel in the resultant bitmap

 

uCRFlags

Flags that will be passed to LBitmapBase::ColorRes internally when bForceSize is True, bMaintainAspect is True, and the source image is not 24-bit. In this case, the thumbnail image is converted to 24-bit, then, combined with a "background" bitmap. The resulting bitmap is then returned to the thumbnail image's original bit-depth using uCRFlags. For a list of possible values, refer to the uFlags parameter of LBitmapBase::ColorRes.

bMaintainAspect

Flag that indicates whether the aspect ratio of the image should be maintained when creating the thumbnail. When set to TRUE, the generated thumbnail's width and height will not match both nThumbWidth and nThumbHeight if the original aspect ratio was not 1:1. If you desire the thumbnail be generated with exactly the requested width and height while still maintaining the aspect ratio of the actual image, set both bMaintainAspect and bForceSize to TRUE.

bForceSize

Flag that indicates whether the generated thumbnail should be forced to the requested size, even if bMaintainAspect is set to TRUE. If bForceSize is TRUE, the thumbnail bitmap will be generated by creating a "canvas" bitmap with the requested size, and then centering the actual image inside that bitmap. Note this is a slower process. This parameter is ignored if bMaintainAspect is FALSE.

crBackColor

Background color to use if both bForceSize and bMaintainAspect are TRUE.

bLoadStamp

Flag that indicates whether or not to attempt to load stamps from file formats that support preview images. Possible values are:

 

 

Value

Meaning

 

TRUE

Attempt to load stamps.

 

FALSE

Do not attempt to load stamps.

 

bResample

Flag that indicates whether or not to use interpolated resize when generating thumbnails. Possible values are:

 

 

Value

Meaning

 

TRUE

Use interpolated resize.

 

FALSE

Do not use interpolated resize.

Comments

If the bLoadStamp member of this structure is set to TRUE when LFile::CreateThumbnail is called and the file does not contain a stamp, then an error will be returned.

Some functions which take this structure as a parameter require that the structure be initialized prior to the function call. You must set the uStructSize member to the total size, in bytes, of the structure. Use the sizeof() macro to calculate this value. Functions that do not require the structure be initialized will take the total size of the structure, in bytes, as an additional function parameter.