L_ShearBitmap (original) (raw)
Summary
Moves the corners of a bitmap in the fashion of a parallelogram.
Syntax
#include "l_bitmap.h"
L_LTKRN_API L_INT L_ShearBitmap(pBitmap, nAngle, fHorizontal, crFill)
Parameters
pBITMAPHANDLE pBitmap
Pointer to the bitmap handle referencing the bitmap to shear.
L_INT nAngle
The angle of slant. Positive values are for clockwise angles; negative values are for counterclockwise angles. The angle is expressed in hundredths of degrees, with a limit of 4500 (45 degrees).
L_BOOL fHorizontal
TRUE for horizontal shear, or FALSE for vertical shear.
L_COLORREF crFill
The COLORREF value that specifies the fill color. You can specify a COLORREF value, such as the return value of the Windows RGB macro, or you can use the PALETTEINDEX macro to specify a palette color.
Returns
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
Comments
This function does not support signed data images. It returns the error code ERROR_SIGNED_DATA_NOT_SUPPORTED if a signed data image is passed to this function.
You specify an angle of slant, horizontal or vertical shear, and the fill color for the created space.
The angle is expressed in hundredths of degrees, with a limit of 4500 (45 degrees).
To update a status bar or detect a user interrupt during execution of this function, refer to L_SetStatusCallback.
Shear Function - Before
Shear Function - After
View additional platform support for this Shear function.
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, Linux.
See Also
Functions
Topics
- Raster Image Functions: Doing Geometric Transformations
- Resizing Considerations
- Using Color Values in LEADTOOLS
Example
For complete sample code, refer to the CHILD.C module of the DEMO
example.
L_INT ShearBitmapExample(L_VOID)
{
L_INT nRet;
BITMAPHANDLE LeadBitmap; /* Bitmap handle to hold the loaded image. */
/* Load the bitmap, keeping the bits per pixel of the file */
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT("IMAGE1.CMP")), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL);
if(nRet != SUCCESS)
return nRet;
/* Shear the bitmap 15 degrees vertically, filling extra space with blue */
nRet = L_ShearBitmap(&LeadBitmap, -1500, FALSE, RGB(0, 0, 255) );
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;
}