Copies an entire image of a source bitmap and places it into a destination bitmap. This also copies all fields in the bitmap handle.
#include "l_bitmap.h"
L_LTKRN_API L_INT L_CopyBitmap2(pBitmapDst, pBitmapSrc, uStructSize, uMemory)
Points to the destination bitmap handle to hold the copied image.
Points to the source bitmap handle. You must have a valid image loaded into the bitmap for this function to work.
Size in bytes, of the structure pointed to by pBitmapDst
, for versioning. Use sizeof(BITMAPHANDLE).
Flag to request the type of memory to allocate. Possible Values are:
Value | Meaning |
---|---|
TYPE_CONV | [0x0001] Use conventional memory if the image will fit, otherwise swap to disk. |
TYPE_USER | [0x0002] Create a bitmap where the user maintains the data pointer. |
TYPE_TILED | [0x0004] Create tiled bitmaps. |
TYPE_NOTILED | [0x0008] Do not create tiled bitmaps, even if the conventional memory has failed. |
TYPE_DISK | [0x0080] Do not use conventional memory. Swap to disk only. |
TYPE_NODISK | [0x0100] Do not swap to disk using LEAD's virtual memory. Windows virtual memory is not affected. |
TYPE_COMPRESSED | [0x0200] (Document and Medical Imaging toolkits) Allocate an RLE-compressed bitmap. You can use this flag with TYPE_CONV or TYPE_NODISK. For more information, refer to Speeding Up 1-Bit Documents. |
TYPE_SUPERCOMPRESSED | [0x0400] (Document and Medical Imaging toolkits) Keep images compressed in memory. This option causes slow access, but very low memory usage. This option is available for 1-bit, 8-bit grayscale, and 24-bit images only. |
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
The destination bitmap must not be allocated before this function is called. If the bitmap is already allocated, you must free it.
If a region is defined for the bitmap, the region is also copied.
Win32, x64, Linux.
This example loads TmpBitmap and copies it to pBitmap, specifying TYPE_DISK for the memory allocation.
L_INT CopyBitmap2Example(pBITMAPHANDLE pBitmap)
{
L_INT nRet;
BITMAPHANDLE TmpBitmap; /* Bitmap handle for the initial image */
/* Load a bitmap at its own bits per pixel */
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT("ImageProcessingDemo\\Image3.cmp")), &TmpBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL);
if(nRet != SUCCESS)
return nRet;
/* Copy the temporary bitmap to the new bitmap and allocate the memory on disk */
if(pBitmap->Flags.Allocated)
L_FreeBitmap(pBitmap);
nRet = L_CopyBitmap2(pBitmap, &TmpBitmap, sizeof(BITMAPHANDLE), TYPE_DISK);
if(nRet != SUCCESS)
return nRet;
/* Clean up */
if(TmpBitmap.Flags.Allocated)
L_FreeBitmap(&TmpBitmap);
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
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.