L_DispContainerSaveRegion

#include "l_bitmap.h"

L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerSaveRegion(hCellWnd, pFileName, nSubCellIndex, nStartPage, uFlags)

HWND hCellWnd;

/* handle to the cell window */

LPTSTR pFileName;

/* output file name */

L_INT nSubCellIndex;

/* index into the image list attached to the cell */

L_INT nStartPage;

/* the page number of a multi-page file */

L_UINT uFlags;

/* flag */

Saves the region of the specified cell or sub-cell image to a file.

Parameter

Description

hCellWnd

A handle to the window that represents the cell on which the function's effect will be applied.

pFileName

Character string that contains the name of the file to save.

nSubCellIndex

A zero-based index into the image list attached to the cell specified in nCellIndex. This sub-cell contains the image region that will be saved. Pass -2 to refer to the selected sub-cell. If the cell contains 1 frame then the nSubCellIndex should be 0.

nStartPage

The page number of a multi-page file, which can contain more than one image.

uFlags

Flag that is used to determine the way of saving the region. Possible values are:

 

Value

Meaning

 

CONTAINER_FILE_CREATE

[0x00000000] Create a file.

 

CONTAINER_FILE_APPEND

[0x00000001] Append an existing file.

 

CONTAINER_FILE_REPLACE

[0x00000002] Replace the region in the index nStartPage in the existing file with the new region.

 

CONTAINER_FILE_INSERT

[0x00000003] Insert the region in the index nStartPage in the existing file.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

This function saves the region into an encrypted file. To load the saved region file use L_DispContainerLoadRegion.

Required DLLs and Libraries

LTIVW
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:

L_DispContainerLoadRegion, L_DispContainerAnnToRgn, L_DispContainerSetRegionCallBack, L_DispContainerGetRegionCallBack, DISPCONTAINERREGIONCALLBACK

Topics:

Image Viewer Cells

 

Image Viewer Functions: Image Viewer Cells

 

Creating a Bitmap Region Inside the Image Viewer

Example

This example will create a bitmap region on the first frame of the first image, save it, and then apply it to the rest of the frames.

#if defined LEADTOOLS_V17_OR_LATER

L_INT DispContainerSaveBitmapRegionExample(HDISPCONTAINER hCon)
{
   L_INT        nRet;
   BITMAPHANDLE Bitmap;
   RECT         rcRect;
   L_INT        nI;
   L_INT        nCount;
   HBITMAPLIST  hBitmapList;

   if (L_DispContainerGetCellCount(hCon, 0) == 0)
   {
      MessageBox(NULL, TEXT("you must at least have one cell added to the viewer"), TEXT("No Cell attached"), MB_OK);
      return FAILURE;
   }

   HWND hCellWnd = L_DispContainerGetCellWindowHandle(hCon, 0, 0);

   nRet = L_DispContainerGetBitmapHandle(hCellWnd, 0, &Bitmap, 0);
   if (nRet != SUCCESS)
      return nRet;

   nRet = L_DispContainerGetCellBitmapList(hCellWnd, &hBitmapList, 0);
   if (nRet != SUCCESS)
      return nRet;

   L_GetBitmapListCount(hBitmapList, (L_UINT *)&nCount);

   L_INT nBitmapCenterX = BITMAPWIDTH(&Bitmap) >> 1;
   L_INT nBitmapCenterY = BITMAPHEIGHT(&Bitmap) >> 1;

   SetRect(&rcRect, nBitmapCenterX - (nBitmapCenterX >> 1),
                    nBitmapCenterY - (nBitmapCenterY >> 1),
                    nBitmapCenterX + (nBitmapCenterX >> 1),
                    nBitmapCenterY + (nBitmapCenterY >> 1));

   L_SetBitmapRgnRect(&Bitmap, NULL, &rcRect, L_RGN_OR);

   L_DispContainerSetBitmapHandle(hCellWnd, 0, &Bitmap, TRUE, 0);

   L_DispContainerSaveRegion(hCellWnd, TEXT("C:\\Region.rgn"), 0, 0, 0);


   for (nI = 0; nI < nCount; nI++)
      L_DispContainerLoadRegion(hCellWnd, TEXT("C:\\Region.rgn"), nI, 0, 0);

   return SUCCESS;
}


#else




L_INT DispContainerSaveBitmapRegionExample(HDISPCONTAINER hCon)
{
   L_INT        nRet;
   BITMAPHANDLE Bitmap;
   RECT         rcRect;
   L_INT        nI;
   L_INT        nCount;
   HBITMAPLIST  hBitmapList;

   nRet = L_DispContainerGetBitmapHandle(hCon, 0, 0, &Bitmap, 0);
   if (nRet != SUCCESS)
      return nRet;

   nRet = L_DispContainerGetCellBitmapList(hCon, 0, &hBitmapList, 0);
   if (nRet != SUCCESS)
      return nRet;

   L_GetBitmapListCount(hBitmapList, (L_UINT *)&nCount);

   L_INT nBitmapCenterX = BITMAPWIDTH(&Bitmap) >> 1;
   L_INT nBitmapCenterY = BITMAPHEIGHT(&Bitmap) >> 1;

   SetRect(&rcRect, nBitmapCenterX - (nBitmapCenterX >> 1),
                    nBitmapCenterY - (nBitmapCenterY >> 1),
                    nBitmapCenterX + (nBitmapCenterX >> 1),
                    nBitmapCenterY + (nBitmapCenterY >> 1));

   L_SetBitmapRgnRect(&Bitmap, NULL, &rcRect, L_RGN_OR);

   L_DispContainerSetBitmapHandle(hCon, 0, 0, &Bitmap, TRUE, 0);

   L_DispContainerSaveRegion(hCon, TEXT("C:\\Region.rgn"), 0, 0, 0, 0);


   for (nI = 0; nI < nCount; nI++)
      L_DispContainerLoadRegion(hCon, TEXT("C:\\Region.rgn"), 0, nI, 0, 0);

   return SUCCESS;
}


#endif