Available in LEADTOOLS Imaging Pro, Vector, Document, and Medical Imaging toolkits. |
#include "l_bitmap.h"
L_LTKRN_API L_INT L_SizeBitmap(pBitmap, nWidth, nHeight, uFlags)
pBITMAPHANDLE pBitmap; |
/* pointer to the bitmap handle */ |
L_INT nWidth; |
/* new width in pixels */ |
L_INT nHeight; |
/* new height in pixels */ |
L_UINT uFlags; |
/* quality control flags */ |
Resizes a bitmap to a new width and height.
Parameter |
Description |
|
pBitmap |
Pointer to the bitmap handle referencing the bitmap to be resized. |
|
nWidth |
New width in pixels. |
|
nHeight |
New height in pixels. |
|
uFlags |
Flags that control the behavior when resizing the bitmap. Use one of the following: |
|
|
Constant |
Meaning |
|
SIZE_NORMAL |
[0x0000] Resize normally. |
|
SIZE_FAVORBLACK |
[0x0001] (Document and Medical Imaging toolkits) Preserve black objects when making the image smaller. This option affects only 1-bit, black-and-white images, where it prevents the disappearance of thin lines. You can use a bitwise OR ( | ) to combine this flag with another one. For example, SIZE_RESAMPLE | SIZE_FAVORBLACK causes color images to be resampled, but applies the favor-black option to 1-bit, black-and-white images. |
|
SIZE_RESAMPLE |
[0x0002] Use linear interpolation and averaging to produce a higher-quality image. |
|
SIZE_BICUBIC |
[0x0004] Use bicubic interpolation and averaging to produce a higher quality image. This is slower than SIZE_RESAMPLE. |
|
SIZE_SCALETOGRAY |
[0x0008] (Document and Medical Imaging toolkits). Use interpolation to display black and white images using shades of gray when the image is resized. This improves the readability when the image is scaled up or down. The generated image is 8-bit grayscale, so this option should be used only for black and white images. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
This function keeps the same bitmap handle and resizes the bitmap that it references. If you want to keep the original-size bitmap along with the resized bitmap, use the L_ResizeBitmap function.
To update a status bar or detect a user interrupt during execution of this function, refer to L_SetStatusCallback.
Required DLLs and Libraries
LTKRN For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
Platforms
Win32, x64.
See Also
Example
For complete sample code, refer to the FEATURE2 example. This example changes a bitmap to half its previous size.
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName L_INT SizeBitmapExample(L_VOID) { L_INT nRet; BITMAPHANDLE LeadBitmap; /* Bitmap handle to hold the loaded image */ /* Load the bitmap, at its own bits per pixel */ nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT("ImageProcessingDemo\\Image3.cmp")), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL); if(nRet != SUCCESS) return nRet; /* Change the size of the bitmap */ nRet = L_SizeBitmap (&LeadBitmap, LeadBitmap.Width / 2, LeadBitmap.Height / 2, SIZE_NORMAL); if(nRet != SUCCESS) return nRet; nRet = L_SaveBitmap(MAKE_IMAGE_PATH(TEXT("Result.BMP")), &LeadBitmap, FILE_BMP, 24, 0, NULL); if(nRet != SUCCESS) return nRet; if(LeadBitmap.Flags.Allocated) L_FreeBitmap(&LeadBitmap); return SUCCESS; }