LBitmapBase::ConvertFromDIB
#include "ltwrappr.h"
virtual L_INT LBitmapBase::ConvertFromDIB(pInfo, pBits)
BITMAPINFO * pInfo; |
/* pointer to the Windows BITMAPINFO structure*/ |
L_UCHAR * pBits; |
/* 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
Functions: |
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
L_INT LBitmapBase__ConvertFromDIBExample(HWND hWnd,LBitmapBase LeadBitmap) { UNREFERENCED_PARAMETER(hWnd); L_INT nRet; LBitmapBase TmpBitmap; HGLOBAL hDIB; BITMAPINFO * pInfo; L_UCHAR * pBits; L_INT nColorData; /* Load a bitmap at 8 bits per pixel so that we can demonstrate palette handling */ nRet =TmpBitmap.Load (TEXT("C:\\Program Files\\LEAD Technologies, Inc\\LEADTOOLS 15.0\\Images\\image3.cmp"), 8, ORDER_BGR); if(nRet !=SUCCESS) return nRet; hDIB = TmpBitmap.ConvertToDIB(DIB_BITMAPV5HEADER); pInfo = (BITMAPINFO *) GlobalLock( hDIB ); if(pInfo->bmiHeader.biBitCount <= 8) nColorData = 1 << pInfo->bmiHeader.biBitCount; else nColorData = 0; pBits = (L_UCHAR *) pInfo + sizeof(BITMAPINFOHEADER) + (nColorData * sizeof(RGBQUAD)); nRet =LeadBitmap.ConvertFromDIB(pInfo, pBits); if(nRet !=SUCCESS) return nRet; GlobalUnlock(hDIB); GlobalFree(hDIB); nRet =TmpBitmap.Free(); if(nRet !=SUCCESS) return nRet; return SUCCESS; }