#include "l_bitmap.h"
L_LTJP2_API L_INT EXT_FUNCTION L_Jp2ReadFramesMemory(hJp2, pBuffer, uBufferSize, pComposite, pFrames, uNumOfFrames, nBitsPerPixel, nOrder, pLoadOptions, pFileInfo, pReadCallBack, pUserData)
L_HJP2 hJp2; |
/* JPEG 2000 engine handle*/ |
L_UINT8 * pBuffer; |
/* pointer to a JPEG 2000 file in memory */ |
L_SIZE_T uBufferSize; |
/* size of JPEG 2000 file */ |
pL_JP2_JPXCOMPOSITE pComposite; |
/* pointer to a L_JP2_JPXCOMPOSITE structure */ |
L_UINT32 * pFrames; |
/* frames indices */ |
L_UINT32 uNumOfFrames; |
/* number of frames */ |
L_INT nBitsPerPixel; |
/* resulting bitmaps pixel depth */ |
L_INT nOrder; |
/* desired color order */ |
pLOADFILEOPTION pLoadOptions; |
/* pointer to optional extended load options */ |
pFILEINFO pFileInfo; |
/* pointer to a structure */ |
FILEREADCALLBACK pReadCallBack; |
/* optional callback function */ |
L_VOID * pUserData; |
/* pointer to more parameters for the callback */ |
Loads the specified frames bitmaps (Color, Opacity and Pre-multiplied opacity) stored in the specified 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. |
|
pComposite |
Pointer to the L_JP2_JPXCOMPOSITE structure, that references L_JP2_JPXBITMAPS bitmaps to be filled with image data. |
|
pFrames |
Frames indices. An array of unsigned integers specifies the indices of the frames to be loaded from the file. |
|
uNumOfFrames |
Number of frames to be loaded. This value specifies the size of pFrames. |
|
nBitsPerPixel |
Resulting bitmap pixel depth. If zero [0], the bitmap will have the original files pixel depth (do not convert). |
|
nOrder |
The desired color order. Possible values are: |
|
Value |
Meaning | |
ORDER_RGB |
[0] Read-green-blue order. | |
ORDER_BGR |
[1] Blue green-red order. | |
ORDER_GRAY |
[2] 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are supported in Document and Medical imaging products only. | |
0 |
The data is 8 bits per pixel or less. | |
ORDER_RGBORGRAY |
[3] Load the image as red, green, blue, OR as a 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are supported in Document/Medical imaging products only. | |
ORDER_BGRORGRAY |
[4] Load the image as blue, green, red, OR as a 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are supported in Document/Medical imaging products only. | |
ORDER_ROMM |
[5] ROMM order. ROMM only supports 24 and 48-bit images. | |
ORDER_BGRORGRAYORROMM |
[6] Load the image as blue, green, red, OR as a 12 or 16-bit grayscale image OR as ROMM. 12 and 16-bit grayscale images are supported in Document/Medical imaging products only. | |
pLoadOptions |
Pointer to optional extended load options. Pass NULL to use the default load options. |
|
pFileInfo |
Pointer to a FILEINFO structure. If nothing is known about the file pass NULL. |
|
pReadCallBack |
Optional callback function for additional processing. If you do not provide a callback function, pass NULL. If you do provide a callback function, use the function pointer as the value of this parameter. The callback function must adhere to the function prototype described in the FILEREADCALLBACK function. |
|
pUserData |
Void pointer that you can use to pass one or more additional parameters used by the callback function. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
L_Jp2ReadFramesMemory loads the specified frames bitmaps (Color, Opacity and Pre-multiplied opacity) stored in the specified JPEG 2000 file in memory. You must free this structure by calling the L_Jp2FreeComposite function. Also you must free structure bitmaps by calling the L_FreeBitmap function. All of the engines boxes will be reset.
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
Win32, x64.
See Also
Example
This example reads specific frame in JPEG 2000 file format
L_LTJP2TEX_API L_INT Jp2ReadFramesMemoryExample(pBITMAPHANDLE pBitmap, L_UINT8* pFileBuffer, L_SIZE_T uFileSize) { L_HJP2 hEngine; L_INT nRet; L_JP2_JPXCOMPOSITE Composite = {0}; L_UINT32 puFrames[1] = {0}; Composite.uStructSize = sizeof(L_JP2_JPXCOMPOSITE); /*Create JPEG 2000 engine handle*/ hEngine = L_Jp2Create(); /*Read a frame*/ puFrames[0] = 0; nRet = L_Jp2ReadFramesMemory(hEngine, pFileBuffer, uFileSize, &Composite, puFrames, 1, 24, ORDER_BGR, NULL, NULL, NULL, NULL); if(nRet != SUCCESS) return nRet; *pBitmap = Composite.pBitmaps[0].ColorBitmap; /*Free comoposite structure*/ L_Jp2FreeComposite(hEngine, &Composite); /*Destroy engine handle*/ L_Jp2Destroy(hEngine); return SUCCESS; }