L_FeatherAlphaBlendBitmap
#include "l_bitmap.h"
L_INT EXT_FUNCTION L_FeatherAlphaBlendBitmap(pBitmapDst, nXDst, nYDst, nWidth, nHeight, pBitmapSrc, nXSrc, nYSrc, pBitmapMask)
pBITMAPHANDLE pBitmapDst; |
/* pointer to the bitmap handle */ |
L_INT nXDst; |
/* x coordinate */ |
L_INT nYDst; |
/* y coordinate */ |
L_INT nWidth; |
/* width */ |
L_INT nHeight; |
/* height */ |
pBITMAPHANDLE pBitmapSrc; |
/* pointer to a bitmap handle */ |
L_INT nXSrc; |
/* x coordinate */ |
L_INT nYSrc; |
/* y coordinate */ |
pBITMAPHANDLE pBitmapMask; |
/* pointer to a bitmap handle */ |
Combines image data from two bitmaps with feathering, by combining the two bitmaps with a variable opacity that depends on a fade mask. This function is available in the Raster Pro and above toolkits.
Parameter |
Description |
pBitmapDst |
Pointer to the bitmap handle that references the destination bitmap. The function will update this bitmap. |
nXDst |
The X coordinate of the origin of the destination rectangle. |
nYDst |
The Y coordinate of the origin of the destination rectangle. |
nWidth |
Width of the area to be combined, in pixels. This width applies to both the source and the destination areas. |
nHeight |
Height of the area to be combined, in pixels. This height applies to both the source and the destination areas. |
pBitmapSrc |
Pointer to the bitmap handle that references the source bitmap. |
nXSrc |
The X coordinate of the origin of the source rectangle. |
nYSrc |
The Y coordinate of the origin of the source rectangle. |
pBitmapMask |
Pointer to the bitmap handle that references the fade mask. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
To combine two bitmaps with a fixed opacity, use the L_AlphaBlendBitmap function.
The L_FeatherAlphaBlendBitmap function achieves feathering between two bitmaps by using variable opacity values, obtained from the fade mask referenced by pBitmapMask.
To create a bitmap that contains a fade mask, use L_CreateFadedMask.
To update a status bar or detect a user interrupt during execution of this function, refer to L_SetStatusCallback.
This function supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.
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.
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
Windows 95 / 98 / Me, Windows 2000 / XP.
See Also
Example
BITMAPHANDLE BitmapDst; /* Bitmap handle to hold the loaded image */
BITMAPHANDLE BitmapSrc; /* source bitmap */
BITMAPHANDLE BitmapMask; /* Bitmap handle to the fade mask bitmap */
RECT rRgnRect; /* Rectangle that defines the region */
L_INT XDst; /* Column offset of the destination */
L_INT XSize; /* Pixel width of the rectangle to combine */
L_INT YDst; /* Row offset of the destination */
L_INT YSize; /* Pixel height of the rectangle to combine */
L_INT XSrc; /* Column offset of the source */
L_INT YSrc; /* Column offset of the source */
/* Load both bitmaps, at 24 bits per pixel */
L_LoadBitmap (TEXT("IMAGE1.CMP"), &BitmapDst, sizeof(BITMAPHANDLE), 24, ORDER_BGR, NULL, NULL);
L_LoadBitmap (TEXT("IMAGE2.BMP"), &BitmapSrc, sizeof(BITMAPHANDLE), 24, ORDER_BGR, NULL, NULL);
/* Specify a position in the top left part of the displayed image */
XDst = BITMAPWIDTH(&BitmapDst) / 8;
YDst = BITMAPHEIGHT(&BitmapDst) / 8;
/* Use the half size of the source bitmap */
YSize = BITMAPHEIGHT(&BitmapSrc) / 2;
XSize = BITMAPWIDTH(&BitmapSrc) / 2;
XSrc = 0;
YSrc = 0;
// specify a rectangle
SetRect(&rRgnRect, XSrc, YSrc, XSrc + XSize , YSrc + YSize);
/* Create a rectangular region */
L_SetBitmapRgnRect (&BitmapSrc, NULL, &rRgnRect, L_RGN_SET);
/* create the fade mask */
L_CreateFadedMask(&BitmapSrc, &BitmapMask, sizeof(BITMAPHANDLE), 60, 20, 3, 0, FADE_DUMPFILL | FADE_NOTRANSPARENCY, 255,RGB(0, 0, 255));
/* Combine BitmapSrc with BitmapDst, with fade mask bitmap */
L_FeatherAlphaBlendBitmap (&BitmapDst, XDst, YDst, XSize, YSize,
& BitmapSrc, XSrc, YSrc, &BitmapMask);
/* Free the temporary bitmap */
L_FreeBitmap(&BitmapSrc);