! : changed
+ : added
+October 19, 2011
+* [mickael] backport rev 1013-1014 from trunk
+
October 10, 2011
* [vincent] fix 'distcheck' rule
* [antonin] modified indexer for JPIP, JPP-stream
int imagetotga(opj_image_t * image, const char *outfile) {
int width, height, bpp, x, y;
opj_bool write_alpha;
- int i;
+ int i, adjustR, adjustG, adjustB;
unsigned int alpha_channel;
float r,g,b,a;
unsigned char value;
scale = 255.0f / (float)((1<<image->comps[0].prec)-1);
+ adjustR = (image->comps[0].sgnd ? 1 << (image->comps[0].prec - 1) : 0);
+ adjustG = (image->comps[1].sgnd ? 1 << (image->comps[1].prec - 1) : 0);
+ adjustB = (image->comps[2].sgnd ? 1 << (image->comps[2].prec - 1) : 0);
+
for (y=0; y < height; y++) {
unsigned int index=y*width;
for (x=0; x < width; x++, index++) {
- r = (float)(image->comps[0].data[index]);
+ r = (float)(image->comps[0].data[index] + adjustR);
if (image->numcomps>2) {
- g = (float)(image->comps[1].data[index]);
- b = (float)(image->comps[2].data[index]);
+ g = (float)(image->comps[1].data[index] + adjustG);
+ b = (float)(image->comps[2].data[index] + adjustB);
}
else {// Greyscale ...
g = r;
}
if (it_comp != nbcomp)
+ {
+ free(outArgs);
return NULL;
+ }
else
return outArgs;
}
// Read the pgx file corresponding to the component
image_read = pgxtoimage(filenameComponentPGX, ¶meters);
if (!image_read)
- {
- fprintf(stderr, "Unable to load pgx file\n");
- return NULL;
- }
+ {
+ int it_free_data;
+ fprintf(stderr, "Unable to load pgx file\n");
+
+ free(param_image_read);
+
+ for (it_free_data = 0; it_free_data < it_file; it_free_data++) {
+ free(data[it_free_data]);
+ }
+ free(data);
+
+ free(filenameComponentPGX);
+
+ return NULL;
+ }
// Set the image_read parameters
param_image_read[it_file].x0 = 0;
if( parse_cmdline_cmp(argc, argv, &inParam) == EXIT_FAILURE )
{
comparePGXimages_help_display();
- if (!inParam.tabMSEvalues) free(inParam.tabMSEvalues);
- if (!inParam.tabPEAKvalues) free(inParam.tabPEAKvalues);
- if (!inParam.base_filename) free(inParam.base_filename);
- if (!inParam.test_filename) free(inParam.test_filename);
+ if (inParam.tabMSEvalues) free(inParam.tabMSEvalues);
+ if (inParam.tabPEAKvalues) free(inParam.tabPEAKvalues);
+ if (inParam.base_filename) free(inParam.base_filename);
+ if (inParam.test_filename) free(inParam.test_filename);
return EXIT_FAILURE;
}
}
else
{
- if (!inParam.tabMSEvalues) free(inParam.tabMSEvalues);
- if (!inParam.tabPEAKvalues) free(inParam.tabPEAKvalues);
- if (!inParam.base_filename) free(inParam.base_filename);
- if (!inParam.test_filename) free(inParam.test_filename);
+ if (inParam.tabMSEvalues) free(inParam.tabMSEvalues);
+ if (inParam.tabPEAKvalues) free(inParam.tabPEAKvalues);
+ if (inParam.base_filename) free(inParam.base_filename);
+ if (inParam.test_filename) free(inParam.test_filename);
return EXIT_FAILURE;
}
}
else
{
- if (!inParam.tabMSEvalues) free(inParam.tabMSEvalues);
- if (!inParam.tabPEAKvalues) free(inParam.tabPEAKvalues);
- if (!inParam.base_filename) free(inParam.base_filename);
- if (!inParam.test_filename) free(inParam.test_filename);
+ if (inParam.tabMSEvalues) free(inParam.tabMSEvalues);
+ if (inParam.tabPEAKvalues) free(inParam.tabPEAKvalues);
+ if (inParam.base_filename) free(inParam.base_filename);
+ if (inParam.test_filename) free(inParam.test_filename);
free(filenamePNGbase);
return EXIT_FAILURE;
}
if (parse_cmdline_cmp(argc, argv, &inParam) == EXIT_FAILURE)
{
compareRAWimages_help_display();
+
+ /* Free Memory */
+ if (inParam.base_filename){
+ free(inParam.base_filename);
+ inParam.base_filename = NULL;
+ }
+ if (inParam.test_filename){
+ free(inParam.test_filename);
+ inParam.test_filename = NULL;
+ }
+
return EXIT_FAILURE;
}
file_test = fopen(inParam.test_filename, "rb");
if (!file_test) {
fprintf(stderr, "Failed to open %s for reading !!\n", inParam.test_filename);
+
+ /* Free Memory */
+ if (inParam.base_filename){
+ free(inParam.base_filename);
+ inParam.base_filename = NULL;
+ }
+ if (inParam.test_filename){
+ free(inParam.test_filename);
+ inParam.test_filename = NULL;
+ }
+
return EXIT_FAILURE;
}
file_base = fopen(inParam.base_filename, "rb");
if (!file_base) {
fprintf(stderr, "Failed to open %s for reading !!\n", inParam.base_filename);
+
+ /* Free Memory */
+ if (inParam.base_filename){
+ free(inParam.base_filename);
+ inParam.base_filename = NULL;
+ }
+ if (inParam.test_filename){
+ free(inParam.test_filename);
+ inParam.test_filename = NULL;
+ }
+
+ fclose(file_test);
return EXIT_FAILURE;
}
}
}
+ /* Free Memory */
+ if (inParam.base_filename){
+ free(inParam.base_filename);
+ inParam.base_filename = NULL;
+ }
+ if (inParam.test_filename){
+ free(inParam.test_filename);
+ inParam.test_filename = NULL;
+ }
+
fclose(file_test);
fclose(file_base);