summaryrefslogtreecommitdiff
path: root/codec/j2k_to_image.c
diff options
context:
space:
mode:
authorFrancois-Olivier Devaux <fodevaux@users.noreply.github.com>2010-03-26 15:46:17 +0000
committerFrancois-Olivier Devaux <fodevaux@users.noreply.github.com>2010-03-26 15:46:17 +0000
commit3e4b0ee509b3669f67cc1b2d7b00825e91aa9106 (patch)
treede75aa18e864afec943586fa3b6c78c8a9a90a9c /codec/j2k_to_image.c
parent54214fb65fdc7af6b505ed0b924ea5d44d861ebf (diff)
Added support for PNG image format [Not yet functional under WIN32]. Thanks to Winfried for this patch. See details here http://code.google.com/p/openjpeg/issues/detail?id=16
Diffstat (limited to 'codec/j2k_to_image.c')
-rw-r--r--codec/j2k_to_image.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/codec/j2k_to_image.c b/codec/j2k_to_image.c
index d93c417b..32213151 100644
--- a/codec/j2k_to_image.c
+++ b/codec/j2k_to_image.c
@@ -58,7 +58,7 @@
#define TIF_DFMT 14
#define RAW_DFMT 15
#define TGA_DFMT 16
-
+#define PNG_DFMT 17
/* ----------------------------------------------------------------------- */
typedef struct dircnt{
@@ -188,8 +188,8 @@ int load_images(dircnt_t *dirptr, char *imgdirpath){
int get_file_format(char *filename) {
unsigned int i;
- static const char *extension[] = {"pgx", "pnm", "pgm", "ppm", "bmp","tif", "raw", "tga", "j2k", "jp2", "jpt", "j2c" };
- static const int format[] = { PGX_DFMT, PXM_DFMT, PXM_DFMT, PXM_DFMT, BMP_DFMT, TIF_DFMT, RAW_DFMT, TGA_DFMT, J2K_CFMT, JP2_CFMT, JPT_CFMT, J2K_CFMT };
+ static const char *extension[] = {"pgx", "pnm", "pgm", "ppm", "bmp","tif", "raw", "tga", "png", "j2k", "jp2", "jpt", "j2c" };
+ static const int format[] = { PGX_DFMT, PXM_DFMT, PXM_DFMT, PXM_DFMT, BMP_DFMT, TIF_DFMT, RAW_DFMT, TGA_DFMT, PNG_DFMT, J2K_CFMT, JP2_CFMT, JPT_CFMT, J2K_CFMT };
char * ext = strrchr(filename, '.');
if (ext == NULL)
return -1;
@@ -286,6 +286,7 @@ int parse_cmdline_decoder(int argc, char **argv, opj_dparameters_t *parameters,i
case TIF_DFMT:
case RAW_DFMT:
case TGA_DFMT:
+ case PNG_DFMT:
break;
default:
fprintf(stderr, "Unknown output format image %s [only *.pnm, *.pgm, *.ppm, *.pgx, *.bmp, *.tif, *.raw or *.tga]!! \n", outfile);
@@ -323,6 +324,9 @@ int parse_cmdline_decoder(int argc, char **argv, opj_dparameters_t *parameters,i
case TGA_DFMT:
img_fol->out_format = "raw";
break;
+ case PNG_DFMT:
+ img_fol->out_format = "png";
+ break;
default:
fprintf(stderr, "Unknown output format image %s [only *.pnm, *.pgm, *.ppm, *.pgx, *.bmp, *.tif, *.raw or *.tga]!! \n", outformat);
return 1;
@@ -786,6 +790,15 @@ int main(int argc, char **argv) {
fprintf(stdout,"Successfully generated Outfile %s\n",parameters.outfile);
}
break;
+
+ case PNG_DFMT: /* PNG */
+ if(imagetopng(image, parameters.outfile)){
+ fprintf(stdout,"Error generating png file. Outfile %s not generated\n",parameters.outfile);
+ }
+ else {
+ fprintf(stdout,"Successfully generated Outfile %s\n",parameters.outfile);
+ }
+ break;
}
/* free remaining structures */