L_Jp2AppendBoxesMemory

#include "l_bitmap.h"

L_LTJP2_API L_INT EXT_FUNCTION L_Jp2AppendBoxesMemory(hJp2, pBuffer, uBufferSize, lpOutBuffer, puOutBufferSize, uBoxType, pBoxes, uNumOfBoxes)

L_HJP2 hJp2;

/* JPEG 2000 engine handle */

L_UINT8 * pBuffer;

/* pointer to a JPEG 2000 file in memory */

L_SIZE_T uBufferSize;

/* size of the JPEG 2000 file*/

L_UINT8 ** lpOutBuffer;

/* pointer to a pointer */

L_SIZE_T * puOutBufferSize;

/* pointer to a variable to be updated */

eJP2BOXTYPE uBoxType;

/* box type */

L_VOID * pBoxes;

/* pointer to an array of boxes */

L_UINT uNumOfBoxes;

/* number of boxes */

Appends boxes of uBoxType to the file in buffer.  

Parameter

Description

hJp2

JPEG 2000 engine handle that was created by the L_Jp2Create function.

pBuffer

Pointer to a JPEG 2000 file in the memory.

uBufferSize

Size of the JPEG 2000 file in bytes.

lpOutBuffer

Pointer to a pointer to be updated with an array of bytes that contains a JPEG 2000 file with new appended boxes. You must free this buffer by calling the Windows GlobalFree() function.

puOutBufferSize

Address of a variable to be updated with the size of the output memory buffer in bytes.

uBoxType

Type of the boxes to be appended.

pBoxes

Point to an array of boxes of type uBoxType.

uNumOfBoxes

Number of boxes in the array.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

The L_Jp2AppendBoxesMemory appends JPEG 2000 boxes to a file in memory buffer.

Required DLLs and Libraries

LTJP2
LFJ2K
LTIMGEFX

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

Win32, x64.

See Also

Functions:

L_Jp2AppendBoxes, L_Jp2AppendFrames, L_Jp2AppendFramesMemory, L_Jp2AppendGMLDataMemory, L_Jp2ReadBox, L_Jp2ReadBoxMemory

Topics:

Programming with JPEG 2000 Features
Raster Image Functions: Working with JPEG 2000

Example

This example appends a box to already existing JPEG 2000 file.

L_LTJP2TEX_API L_INT Jp2AppendBoxesMemoryExample(L_UINT8* pFileBuffer, L_SIZE_T uFileSize, L_UINT8** lpOutBuffer, L_SIZE_T * puOutSize, L_UINT8 * pXMLData, L_SIZE_T uSize)
{
   L_HJP2 hEngine;
   L_INT  nRet;
   L_JP2_XML_BOX XMLBox;

   /*Create JPEG  2000 engine handle*/
   hEngine = L_Jp2Create();
   
   /*Create an XML box*/
   XMLBox.uStructSize = sizeof(L_JP2_XML_BOX);
   XMLBox.pData = pXMLData;
   XMLBox.uDataSize = uSize;
   /*Append XML box to a JPX file*/
   nRet = L_Jp2AppendBoxesMemory(hEngine, pFileBuffer, uFileSize,lpOutBuffer, puOutSize, L_JP2B_XML,&XMLBox,1);
   if(nRet != SUCCESS)
      return nRet;

   /*Destroy engine handle*/
   L_Jp2Destroy(hEngine);

   return SUCCESS;
}