Moves the corners of a bitmap in the fashion of a parallelogram.
#include "l_bitmap.h"
L_LTKRN_API L_INT L_ShearBitmap(pBitmap, nAngle, fHorizontal, crFill)
Pointer to the bitmap handle referencing the bitmap to shear.
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).
TRUE for horizontal shear, or FALSE for vertical shear.
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.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
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.
Win32, x64, Linux.
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;
}
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