Available in LEADTOOLS Medical Imaging toolkits. |
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 |
See Also
Functions: |
L_DispContainerLoadRegion, L_DispContainerAnnToRgn, L_DispContainerSetRegionCallBack, L_DispContainerGetRegionCallBack, DISPCONTAINERREGIONCALLBACK |
Topics: |
|
|
|
|
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