LBitmapBase::ConvertFromDIB
#include "ltwrappr.h"
virtual L_INT LBitmapBase::ConvertFromDIB(pInfo, pBits)
BITMAPINFO L_FAR * pInfo; |
/* pointer to the Windows BITMAPINFO structure*/ |
/* pointer to the DIB image data*/ |
Converts a Windows device independent bitmap (DIB) into an LBitmapBase object. When this function is completed, there are two copies of the image in memory: the original DIB and the LEAD bitmap. Freeing one will not affect the other.
Parameter |
Description |
pInfo |
Pointer to the Windows BITMAPINFO structure. |
pBits |
Pointer to a buffer containing the DIB image data. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
This function updates information in the bitmap handle and copies the DIB image data into the LEAD bitmap.
This function supports the standard DIB formats (BI_RGB and BI_BITFIELDS) as well as some FOURCC (Four Character Code) formats that some capture cards output.
These are the FOURCC that LEADTOOLS supports at the moment:
YVU9 (YUV9), I420 (YUV12), YUV2 , YV12 , IF09 , IYUV , UYVY , cyuv, YUY2, YVYU, Y41P, Y211, Y41T, Y42T
Required DLLs and Libraries
LTDIS 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
Elements: |
LBitmapBase::ConvertToDIB, LBitmapBase::ConvertToDDB, LBitmapBase::ConvertFromDDB, Class Members |
Topics: |
|
|
Example
/* This example loads a bitmap, converts it to a DIB, then converts the DIB back to a bitmap */
LBitmapBase LeadBitmap;
void TestFunction(HWND hWnd)
{
LBitmapBase TmpBitmap;
HGLOBAL hDIB;
BITMAPINFO L_FAR * pInfo;
L_UCHAR L_FAR * pBits;
L_INT nColorData;
/* Load a bitmap at 8 bits per pixel so that we can demonstrate palette handling */
TmpBitmap.Load (TEXT("image3.cmp"), 8, ORDER_BGR);
hDIB = TmpBitmap.ConvertToDIB(DIB_BITMAPV5HEADER);
pInfo = (BITMAPINFO L_FAR *) GlobalLock( hDIB );
if(pInfo->bmiHeader.biBitCount <= 8)
nColorData = 1 << pInfo->bmiHeader.biBitCount;
else
nColorData = 0;
pBits = (L_UCHAR L_FAR *) pInfo + sizeof(BITMAPINFOHEADER) + (nColorData * sizeof(RGBQUAD));
LeadBitmap.ConvertFromDIB(pInfo, pBits);
GlobalUnlock(hDIB);
GlobalFree(hDIB);
TmpBitmap.Free();
}