#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. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
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. |
Win32, x64.
Functions: |
LBitmapBase::ConvertToDIB, LBitmapBase::ConvertToDDB, LBitmapBase::ConvertFromDDB, Class Members |
Topics: |
|
|
This example loads a bitmap, converts it to a DIB, then converts the DIB back to a bitmap
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName
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 (MAKE_IMAGE_PATH(TEXT("ImageProcessingDemo\\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;
}
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET