L_CopyBitmap

#include "l_bitmap.h"

L_LTKRN_API L_INT L_CopyBitmap(pBitmapDst, pBitmapSrc, uStructSize)

pBITMAPHANDLE pBitmapDst;

/* points to the destination bitmap handle */

pBITMAPHANDLE pBitmapSrc;

/* points to the source bitmap handle */

L_UINT uStructSize;

/* size in bytes, of the structure pointed to by pBitmapDst */

Copies an entire image of a source bitmap and places it into a destination bitmap. This also copies all fields in the bitmap handle.

Parameter

Description

pBitmapDst

Points to the destination bitmap handle to hold the copied image.

pBitmapSrc

Points to the source bitmap handle. You must have a valid image loaded into the bitmap for this function to work.

uStructSize

Size in bytes, of the structure pointed to by pBitmapDst, for versioning. Use sizeof(BITMAPHANDLE).

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

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.

Required DLLs and Libraries

LTKRN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Windows 2000 / XP/Vista, Windows CE.

See Also

Functions:

L_CopyBitmapData, L_CopyBitmapHandle,

 

L_CopyBitmapRect

Topics:

Raster Image Functions: Copying Images

 

Raster Image Functions: Palettes

 

Raster Image Functions: Using the Clipboard

Example

For complete sample code, refer to the CHILD.C module of the DEMO example. This example loads TmpBitmap and copies it to LeadBitmap.

 L_INT CopyBitmapExample(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 (TEXT("%UserProfile%\\My Documents\\LEADTOOLS Images\\image3.cmp"), &TmpBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL);
   if(nRet != SUCCESS)
      return nRet;
   /* Copy the temporary bitmap to the new bitmap */
   if(pBitmap->Flags.Allocated)
      L_FreeBitmap(pBitmap);
   nRet = L_CopyBitmap(pBitmap, &TmpBitmap, sizeof(BITMAPHANDLE));
   if(nRet != SUCCESS)
      return nRet;
   /* Clean up */
   if(TmpBitmap.Flags.Allocated)  
      L_FreeBitmap(&TmpBitmap);
   return SUCCESS;
}