Program: gdcm
Module: $RCSfile: gdcmJpeg2000.cxx,v $
Language: C++
- Date: $Date: 2006/01/24 20:25:23 $
- Version: $Revision: 1.35 $
+ Date: $Date: 2006/02/07 16:05:13 $
+ Version: $Revision: 1.41 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include <iostream>
#include <fstream>
+#if defined(__BORLANDC__)
+ #include <mem.h> // for memset
+#endif
+
extern "C" {
#include <openjpeg.h>
}
#define PGX_DFMT 1
#define BMP_DFMT 2
#define YUV_DFMT 3
+
/*
* Divide an integer by a power of 2 and round upwards.
*
* a divided by 2^b
*/
-static int int_ceildivpow2(int a, int b) {
+inline int int_ceildivpow2(int a, int b) {
return (a + (1 << b) - 1) >> b;
}
{
opj_dparameters_t parameters; /* decompression parameters */
opj_event_mgr_t event_mgr; /* event manager */
- opj_image_t *image = NULL;
- opj_dinfo_t* dinfo = NULL; /* handle to a decompressor */
- opj_cio_t *cio = NULL;
+ opj_image_t *image;
+ opj_dinfo_t* dinfo; /* handle to a decompressor */
+ opj_cio_t *cio;
unsigned char *src = (unsigned char*)inputdata;
int file_length = inputlength;
/* set decoding parameters to default values */
opj_set_default_decoder_parameters(¶meters);
+
+ // default blindly copied
+ parameters.cp_layer=0;
+ parameters.cp_reduce=0;
+// parameters.decod_format=-1;
+// parameters.cod_format=-1;
/* JPEG-2000 codestream */
+ parameters.decod_format = J2K_CFMT;
assert(parameters.decod_format == J2K_CFMT);
+ parameters.cod_format = PGX_DFMT;
+ assert(parameters.cod_format == PGX_DFMT);
/* get a decoder handle */
dinfo = opj_create_decompress(CODEC_J2K);
/* catch events using our callbacks and give a local context */
- opj_set_event_mgr((opj_common_ptr)dinfo, &event_mgr, stderr);
+ opj_set_event_mgr((opj_common_ptr)dinfo, &event_mgr, NULL);
/* setup the decoder decoding parameters using user parameters */
opj_setup_decoder(dinfo, ¶meters);
/* decode the stream and fill the image structure */
image = opj_decode(dinfo, cio);
if(!image) {
- fprintf(stderr, "ERROR -> j2k_to_image: failed to decode image!\n");
opj_destroy_decompress(dinfo);
opj_cio_close(cio);
return 1;
/* free the memory containing the code-stream */
delete[] src; //FIXME
- src = NULL;
// Copy buffer
for (int compno = 0; compno < image->numcomps; compno++)
/* free image data structure */
opj_image_destroy(image);
- return true;
+
+ return true;
}
#if 0