22#if OPENJPEG_VER <= JP2K_VER_15
27void JPEG2KImage::init(
void)
40bool JPEG2KImage::isNull(
void)
42 if (image!=NULL && image->comps!=NULL)
return false;
47void JPEG2KImage::free(
void)
50 opj_image_destroy(image);
57void JPEG2KImage::fill(
int v)
60 for (
int k=0; k<col; k++) {
61 if (image->comps[k].data!=NULL) {
62 for (
int i=0; i<xs*ys; i++) {
63 image->comps[k].data[i] = v;
71void JPEG2KImage::setup_image(
void)
75 xs = image->x1 - image->x0;
76 ys = image->y1 - image->y0;
78 int fac = (int)image->comps->factor;
79 ws = (xs + (1<<fac) -1)>>fac;
80 hs = (ys + (1<<fac) -1)>>fac;
82 col = (int)image->numcomps;
100 int depth = (int)image->comps->bpp;
102 DEBUG_MODE PRINT_MESG(
"JBXL::JPEG2KIMage::setup_image: INFO: xs = %d, ys = %d, col = %d, depth = %d\n", xs, ys, col, depth);
103 if (depth==0 || depth==8) {
109 PRINT_MESG(
"JBXL::JPEG2KIMage::setup_image: unknown color mode: col = %d, depth = %d\n", col, depth);
114#if OPENJPEG_VER > JP2K_VER_12
116 image->icc_profile_len = 0;
148JPEG2KImage jbxl::readJPEG2KFile(
const char* fname)
159 FILE* fp = fopen(fname,
"rb");
165 unsigned char* data = (
unsigned char*)malloc(len);
171 memset(data, 0, len);
182 int format = isJPEG2KHeader(buf);
183 if (format==JP2K_FMT_NONE) format = JP2K_FMT_JPT;
186 fread(data, len, 1, fp);
189 jp = readJPEG2KData(data, len, format);
196JPEG2KImage jbxl::readJPEG2KData(
unsigned char* data,
int len,
int format)
200 opj_dinfo_t* codec = NULL;
201 opj_cio_t* stream = NULL;
203 opj_dparameters_t parameters;
204 opj_set_default_decoder_parameters(¶meters);
206 if (format==JP2K_FMT_J2K) {
207 codec = opj_create_decompress(CODEC_J2K);
209 else if (format==JP2K_FMT_JP2) {
210 codec = opj_create_decompress(CODEC_JP2);
212 else if (format==JP2K_FMT_JPT) {
213 codec = opj_create_decompress(CODEC_JPT);
216 PRINT_MESG(
"JBXL::readJPEG2KData: ERROR: unknown file format!\n");
221 opj_setup_decoder(codec, ¶meters);
222 stream = opj_cio_open((opj_common_ptr)codec, data, len);
223 jp.image = opj_decode(codec, stream);
224 if (jp.image==NULL) {
225 opj_cio_close(stream);
226 opj_destroy_decompress(codec);
233 opj_cio_close(stream);
234 opj_destroy_decompress(codec);
void free_Buffer(Buffer *buf)
Buffer型変数のバッファ部を解放する
Buffer read_Buffer_data(FILE *fp, int sz)
ファイルポインタ fp から szバイトをBuffer型変数に読み込む.
#define JBXL_GRAPH_IVDARG_ERROR
無効な引数
#define JBXL_GRAPH_NODATA_ERROR
データが無い
#define JBXL_GRAPH_OPFILE_ERROR
ファイルのオープンエラー
#define JBXL_GRAPH_FILESZ_ERROR
ファイルサイズのエラー
#define JBXL_GRAPH_MEMORY_ERROR
メモリエラー
#define JBXL_GRAPH_IVDDATA_ERROR
無効なデータ
int vldsz
データの長さ.バイナリデータの場合も使用可能.文字列の場合は 0x00 を含まない.