--- ray/src/px/ra_tiff.c 2005/06/07 16:54:23 2.31 +++ ray/src/px/ra_tiff.c 2010/12/04 00:24:43 2.34 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: ra_tiff.c,v 2.31 2005/06/07 16:54:23 greg Exp $"; +static const char RCSid[] = "$Id: ra_tiff.c,v 2.34 2010/12/04 00:24:43 greg Exp $"; #endif /* * Program to convert between RADIANCE and TIFF files. @@ -13,6 +13,7 @@ static const char RCSid[] = "$Id: ra_tiff.c,v 2.31 200 #include #include +#include "platform.h" #include "tiffio.h" #include "color.h" #include "resolu.h" @@ -191,10 +192,10 @@ doneopts: exit(0); userr: fprintf(stderr, - "Usage: %s [-z|-L|-l|-f|-w][-b][-e +/-stops][-g gamma] {in.pic|-} out.tif\n", + "Usage: %s [-z|-L|-l|-f|-w][-b][-e +/-stops][-g gamma] {in.hdr|-} out.tif\n", progname); fprintf(stderr, - " Or: %s -r [-x][-e +/-stops][-g gamma] in.tif [out.pic|-]\n", + " Or: %s -r [-x][-e +/-stops][-g gamma] in.tif [out.hdr|-]\n", progname); exit(1); } @@ -362,7 +363,7 @@ initfromtif(void) /* initialize conversion from TIFF quiterr("unknown input image resolution"); if (!TIFFGetField(cvts.tif, TIFFTAG_STONITS, &cvts.stonits)) - cvts.stonits = 1.; + cvts.stonits = -1.; if (!TIFFGetField(cvts.tif, TIFFTAG_DATETIME, &cp)) cvts.capdate[0] = '\0'; @@ -380,13 +381,15 @@ initfromtif(void) /* initialize conversion from TIFF if (cvts.pixrat < .99 || cvts.pixrat > 1.01) fputaspect(cvts.pixrat, cvts.rfp); if (CHK(C_XYZE)) { - fputexpos(pow(2.,(double)cvts.bradj)/cvts.stonits, cvts.rfp); + if (cvts.stonits > .0) + fputexpos(pow(2.,(double)cvts.bradj)/cvts.stonits, cvts.rfp); fputformat(CIEFMT, cvts.rfp); } else { if (CHK(C_PRIM)) fputprims(cvts.prims, cvts.rfp); - fputexpos(WHTEFFICACY*pow(2.,(double)cvts.bradj)/cvts.stonits, - cvts.rfp); + if (cvts.stonits > .0) + fputexpos(WHTEFFICACY*pow(2.,(double)cvts.bradj)/cvts.stonits, + cvts.rfp); fputformat(COLRFMT, cvts.rfp); } if (cvts.capdate[0]) @@ -413,6 +416,7 @@ tiff2ra( /* convert TIFF image to Radiance picture */ cvts.rfp = stdout; else if ((cvts.rfp = fopen(av[ac+1], "w")) == NULL) quiterr("cannot open Radiance output picture"); + SET_FILE_BINARY(cvts.rfp); /* start output header */ newheader("RADIANCE", cvts.rfp); printargs(ac, av, cvts.rfp); @@ -632,6 +636,7 @@ ra2tiff( /* convert Radiance picture to TIFF image */ cvts.rfp = stdin; else if ((cvts.rfp = fopen(av[ac], "r")) == NULL) quiterr("cannot open Radiance input picture"); + SET_FILE_BINARY(cvts.rfp); /* open TIFF file */ if ((cvts.tif = TIFFOpen(av[ac+1], "w")) == NULL) quiterr("cannot open TIFF output");