summaryrefslogtreecommitdiff
path: root/codec
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2010-06-22 19:27:35 +0000
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2010-06-22 19:27:35 +0000
commitf71e6e78791f4a8c7963f82aed5c06b9372b9b87 (patch)
treefe715fb6b52c578d7cbdc51569b70cce492b274f /codec
parent3a44c91ea3dbe7e7e0ce1d7d941992ac928d8d4c (diff)
Finish fixing up bugs with png i/o
Diffstat (limited to 'codec')
-rw-r--r--codec/CMakeLists.txt2
-rw-r--r--codec/image_to_j2k.c8
-rw-r--r--codec/j2k_to_image.c22
3 files changed, 27 insertions, 5 deletions
diff --git a/codec/CMakeLists.txt b/codec/CMakeLists.txt
index 0e9ed463..9e5b0eb2 100644
--- a/codec/CMakeLists.txt
+++ b/codec/CMakeLists.txt
@@ -81,7 +81,7 @@ foreach(filename ${OPENJPEG_DATA_IMAGES_GLOB})
#message( "found:${output_variable} for ${filename_temp}" )
endif()
ADD_TEST(dump-${filename_temp} ${EXECUTABLE_OUTPUT_PATH}/j2k_dump -i ${filename})
- foreach(codec_type ppm pgx bmp tif raw tga)
+ foreach(codec_type ppm pgx bmp tif raw tga png)
ADD_TEST(j2i-${filename_temp}-${codec_type} ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image -i ${filename} -o ${filename_temp}.${codec_type})
ADD_TEST(i2j-${filename_temp}-${codec_type} ${EXECUTABLE_OUTPUT_PATH}/image_to_j2k -i ${filename_temp}.${codec_type} -o ${filename_temp}.${codec_type}${filename_ext})
#if(UNIX)
diff --git a/codec/image_to_j2k.c b/codec/image_to_j2k.c
index b5ab62a4..6d6aa690 100644
--- a/codec/image_to_j2k.c
+++ b/codec/image_to_j2k.c
@@ -1713,6 +1713,14 @@ int main(int argc, char **argv) {
return 1;
}
break;
+
+ case PNG_DFMT:
+ image = pngtoimage(parameters.infile, &parameters);
+ if (!image) {
+ fprintf(stderr, "Unable to load png file\n");
+ return 1;
+ }
+ break;
}
/* Decide if MCT should be used */
parameters.tcp_mct = image->numcomps == 3 ? 1 : 0;
diff --git a/codec/j2k_to_image.c b/codec/j2k_to_image.c
index 1e862d67..818e5f6f 100644
--- a/codec/j2k_to_image.c
+++ b/codec/j2k_to_image.c
@@ -31,7 +31,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <stdio.h>
-#define __USE_BSD
#include <string.h>
#include <stdlib.h>
#include <math.h>
@@ -43,6 +42,7 @@
#include "index.h"
#ifndef WIN32
+#include <strings.h>
#define _stricmp strcasecmp
#define _strnicmp strncasecmp
#endif
@@ -60,7 +60,7 @@
#define TIF_DFMT 14
#define RAW_DFMT 15
#define TGA_DFMT 16
-
+#define PNG_DFMT 17
/* ----------------------------------------------------------------------- */
typedef struct dircnt{
@@ -190,8 +190,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", "jpc" };
- 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, J2K_CFMT };
+ static const char *extension[] = {"pgx", "pnm", "pgm", "ppm", "bmp","tif", "raw", "tga", "png", "j2k", "jp2", "jpt", "j2c", "jpc" };
+ 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, J2K_CFMT };
char * ext = strrchr(filename, '.');
if (ext == NULL)
return -1;
@@ -288,6 +288,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);
@@ -325,6 +326,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;
@@ -735,6 +739,16 @@ int main(int argc, char **argv)
ret = EXIT_SUCCESS;
}
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 */