virtual L_INT LBitmap::GetOverlay(nIndex, pOverlayBitmap, uStructSize, uFlags)
virtual L_INT LBitmap::GetOverlay(nIndex, pBitmap, uStructSize, uFlags)
Gets the overlay bitmap for a certain index.
The index of the overlay being retrieved. This index is zero-based.
Pointer to the overlay bitmap handle which will be filled with the new overlay bitmap. Cannot be NULL.
Size of the BITMAPHANDLE structure pointed to by pOverlayBitmap. Pass sizeof(BITMAPHANDLE).
Flags that determine retrieving options. Values cannot be combined. Possible values are:
Value | Meaning |
---|---|
OVERLAY_COPY | [0x0000] Retrieve a copy of the overlay bitmap from the overlay list. |
OVERLAY_NOCOPY | [0x0001] Retrieve the actual overlay bitmap. No copy is made. You should be careful when modifying the overlay bitmap because you can modify/invalidate the entry in the overlay bitmap list. |
OVERLAY_MOVE | [0x0003] Retrieve the actual overlay bitmap, and also remove the bitmap from the overlay list. This is recommended over OVERLAY_NOCOPY. |
Pointer to the overlay bitmap object which will be filled with the new overlay bitmap. Cannot be NULL.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
This function will get the overlay bitmap. You can get a copy of the overlay bitmap (OVERLAY_COPY) or you can get the bitmap without making a copy (OVERLAY_NOCOPY or OVERLAY_MOVE).
The quickest way to get the overlay bitmap is to avoid making a copy. For more information about how to use OVERLAY_NOCOPY, refer to the Comments section of LBitmap::SetOverlay.
If you use OVERLAY_MOVE, the overlay bitmap from the corresponding index will be invalidated.
pOverlayBitmap is assumed to be unallocated an uninitialized. It will be filled without freeing the existing data.
Win32, x64.
This example will get the overlay bitmaps and save them to separate files.
L_INT LBitmap__GetOverlayExample(HWND hWnd, LBitmap *plBitmap)
{
L_INT nRet;
LBitmap OverlayBitmap;
L_INT i;
L_TCHAR s[100];
for(i = 0; i < MAX_OVERLAYS; i++)
{
// note that I am using OVERLAY_NOCOPY, so I should not free the overlay bitmap!
nRet = plBitmap->GetOverlay(i, &OverlayBitmap, sizeof(BITMAPHANDLE), OVERLAY_NOCOPY);
if(nRet == SUCCESS)
{
wsprintf(s,MAKE_IMAGE_PATH(TEXT("overlay%d_copy.cmp")), i);
nRet = OverlayBitmap.Save(s , FILE_LEAD1BIT, 1, 1, NULL);
if(nRet != SUCCESS)
MessageBox(hWnd, TEXT("Error saving file!"), s, MB_OK);
}
else
return nRet;
}
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document