L_Jp2ReadBoxMemory
#include "l_bitmap.h"
L_LTJP2_API L_INT EXT_FUNCTION L_Jp2ReadBoxMemory(hJp2, pBuffer, uBufferSize, eBoxType, plBox, uBoxIndex)
L_HJP2 hJp2; |
/* JPEG 2000 handle */ |
L_UINT8 * pBuffer; |
/* pointer to a JPEG 2000 file in memory */ |
L_SIZE_T uBufferSize; |
/* size of JPEG 2000 file in bytes */ |
eJP2BOXTYPE eBoxType; |
/* box type */ |
L_VOID ** plBox; |
/* pointer to a pointer */ |
L_UINT32 uBoxIndex; |
/* box index */ |
Reads a box of type eBoxType at uBoxIndex from a JPEG 2000 file in memory.
Parameter |
Description |
hJp2 |
JPEG 2000 engine handle that was created by the L_Jp2Create function. |
pBuffer |
Pointer to a JPEG 2000 file in memory. |
uBufferSize |
Size of JPEG 2000 file in bytes. |
eBoxType |
Box type. It specifies the type of the box to be read from the file. |
plBox |
Pointer to a pointer to be updated with the box data structure. |
uBoxIndex |
Zero based box index. It specifies the box the user wants to read. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
L_Jp2ReadBoxMemory reads a box of type eBoxType at uBoxIndex from a JPEG 2000 file in memory.
If the uBoxIndex is greater than the number of boxes the function returns: ERROR_INV_PARAMETER.
L_JP2B_RESOLUTION and L_JPXB_RESOLUTION boxes cant be read using this function. All of the engines boxes will be reset and updated with the new loaded boxes only.
Required DLLs and Libraries
LTJP2 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.
See Also
Functions: |
L_Jp2FreeBoxes, L_Jp2ReadBox, L_Jp2AppendBoxes, L_Jp2AppendBoxesMemory |
Topics: |
Programming
with JPEG 2000 Features |
Example
This example reads an MPEG7 box stored in a JPEG 2000 file.
L_LTJP2TEX_API L_INT Jp2ReadBoxMemoryExample(L_UINT8* pFileBuffer, L_SIZE_T uFileSize, L_UINT8 ** pMPEG7Data, L_SIZE_T* puSize) { L_HJP2 hEngine; L_INT nRet; pL_JP2_MPEG7_BOX pMPEG7Box; L_JP2_FILEINFO Jp2FileInfo; /*Create JPEG 2000 engine handle*/ hEngine = L_Jp2Create(); Jp2FileInfo.uStructSize = sizeof(L_JP2_FILEINFO); L_Jp2GetFileInfoMemory(hEngine, pFileBuffer, uFileSize,&Jp2FileInfo); if(Jp2FileInfo.MPEG7.uNumOfBoxes == 0) return 0; nRet = L_Jp2ReadBoxMemory(hEngine,pFileBuffer, uFileSize,L_JPXB_MPEG7, (L_VOID**)&pMPEG7Box,0); if(nRet != SUCCESS) return nRet; *pMPEG7Data = (L_UINT8*)malloc(pMPEG7Box->uDataSize); memcpy(*pMPEG7Data, pMPEG7Box->pData,pMPEG7Box->uDataSize); *puSize = pMPEG7Box->uDataSize; /*Free the read box*/ L_Jp2FreeBoxes(hEngine, L_JPXB_MPEG7, pMPEG7Box, 1); /*Free File Info structure*/ L_Jp2FreeFileInfo(hEngine, &Jp2FileInfo); /*Destroy engine handle*/ L_Jp2Destroy(hEngine); return SUCCESS; }