LBitmap::Light
#include "ltwrappr.h"
virtual L_INT LBitmap::Light (pLightInfo, uLightNo, uBright, uAmbient, crAmbientClr)
LPLIGHTINFO pLightInfo; |
/* array of light sources information */ |
L_UINT uLightNo; |
/* number of light sources */ |
L_UINT uBright; |
/* image intensity */ |
L_UINT uAmbient; |
/* ambient intensity */ |
COLORREF crAmbientClr; |
/* ambient color */ |
Adds many spots of directed light sources to the bitmap. This function is available in the Raster Pro and above toolkits.
Parameter |
Description |
pLightInfo |
Pointer to an array of LIGHTINFO structures that contains information on each light source. |
uLightNo |
The number of light sources. |
uBright |
Value that represents the brightness of the ambient light of the entire image. This can be any number that is 0 or greater. If it is 0 the image will be black. This value is divided internally by 100. |
uAmbient |
Factor used when mixing the ambient color with the image. |
crAmbientClr |
The COLORREF value that specifies the ambient color of the light sources in the pLightInfo array. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
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.
To update a status bar or detect a user interrupt during execution of this function, refer to LBase::EnableStatusCallback.
For an example, see the following figure:
The following figure shows the same bitmap, after the effect has been applied:
To obtain this effect, the following settings were used with the function:
pLightInfo:
{
ptCenter = (pBitmap->Width/2, pBitmap->Height/2);
uWidth = pBitmap->Width;
uHeight = pBitmap->Width * 4/3;
nAngle = 13500;
uBright = 100;
uEdge = 75;
crFill = RGB(0,0,255);
uOpacity = 100;
uFlag = LGT_SPOTLIGHT;
}
uLightNo = 1;
uBright = 100;
uAmbient = 100;
crAmbientClr = RGB(255,255,0);
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
LTIMG For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
See Also
Example
void TestFunction(LAnimationWindow *BitmapWindow)
{
LIGHTINFO LightInfo;
LightInfo.uStructSize = sizeof(LIGHTINFO);
LightInfo.crFill = RGB(255, 255, 255);
LightInfo.nAngle = 0;
LightInfo.ptCenter.x = BitmapWindow->GetWidth()/2;
LightInfo.ptCenter.y = BitmapWindow->GetHeight()/2;
LightInfo.uEdge = 0;
LightInfo.uBright = 100;
LightInfo.uFlag = LGT_SPOTLIGHT;
LightInfo.uHeight = min(BitmapWindow->GetHeight(), BitmapWindow->GetWidth())/2;
LightInfo.uWidth = max(BitmapWindow->GetHeight(), BitmapWindow->GetWidth())/2;
LightInfo.uOpacity = 100;
BitmapWindow->Light(&LightInfo, 1, 100, 100, RGB(255,255,255));
}