ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/normtiff.c
(Generate patch)

Comparing ray/src/px/normtiff.c (file contents):
Revision 3.8 by schorsch, Sun Mar 28 20:33:14 2004 UTC vs.
Revision 3.12 by greg, Sat Dec 4 00:24:43 2010 UTC

# Line 10 | Line 10 | static const char      RCSid[] = "$Id$";
10   #include <time.h>
11   #include <string.h>
12  
13 + #include "platform.h"
14   #include "tiffio.h"
15   #include "color.h"
16   #include "tonemap.h"
# Line 43 | Line 44 | typedef struct {
44          RESOLU  rs;             /* picture resolution */
45   } PICTURE;
46  
47 < //extern PICTURE        *openpicture();
47 > uint16  comp = COMPRESSION_NONE;        /* TIFF compression mode */
48  
49   #define closepicture(p)         (fclose((p)->fp),free((void *)(p)))
50  
51   static gethfunc headline;
52  
53 < static int headline(char        *s, void *pp);
54 < static PICTURE * openpicture(char       *fname);
55 < static int tmap_picture(char    *fname, PICTURE *pp);
56 < static int tmap_tiff(char       *fname, TIFF    *tp);
57 < static int putimage(uint16      or, uint32      xs, uint32      ys, float       xr, float       yr,
53 > static int headline(char *s, void *pp);
54 > static PICTURE *openpicture(char *fname);
55 > static int tmap_picture(char *fname, PICTURE *pp);
56 > static int tmap_tiff(char *fname, TIFF *tp);
57 > static int putimage(uint16 or, uint32 xs, uint32 ys, float xr, float yr,
58          uint16 ru, BYTE *pd);
59  
60  
# Line 96 | Line 97 | main(
97                          if (argc-i < 2) goto userr;
98                          lddyn = atof(argv[++i]);
99                          break;
100 +                case 'z':                       /* LZW compression */
101 +                        comp = COMPRESSION_LZW;
102 +                        break;
103                  case 'p':                       /* set display primaries */
104                          if (argc-i < 9) goto userr;
105                          myprims[RED][CIEX] = atof(argv[++i]);
# Line 134 | Line 138 | main(
138          exit(rval==0 ? 0 : 1);
139   userr:
140          fprintf(stderr,
141 < "Usage: %s [-h][-s][-c][-l][-b][-g gv][-d ld][-u lm][-p xr yr xg yg xb yb xw yw] input.{tif|pic} output.tif\n",
141 > "Usage: %s [-h][-s][-c][-l][-b][-g gv][-d ld][-u lm][-z][-p xr yr xg yg xb yb xw yw] input.{tif|hdr} output.tif\n",
142                          argv[0]);
143          exit(1);
144   }
# Line 181 | Line 185 | openpicture(                   /* open/check Radiance picture file */
185                                          /* else try opening it */
186          if ((fp = fopen(fname, "r")) == NULL)
187                  return(NULL);
188 +        SET_FILE_BINARY(fp);
189                                          /* allocate struct */
190          if ((pp = (PICTURE *)malloc(sizeof(PICTURE))) == NULL)
191                  return(NULL);           /* serious error -- should exit? */
# Line 208 | Line 213 | tmap_picture(                  /* tone map Radiance picture */
213   )
214   {
215          uint16  orient;
216 +        double  paspect = (pp->rs.rt & YMAJOR) ? pp->pa : 1./pp->pa;
217          int     xsiz, ysiz;
218          BYTE    *pix;
219                                          /* read and tone map picture */
# Line 221 | Line 227 | tmap_picture(                  /* tone map Radiance picture */
227          orient++;
228                                          /* put out our image */
229          if (putimage(orient, (uint32)xsiz, (uint32)ysiz,
230 <                        72., 72./pp->pa, 2, pix) != 0)
230 >                        72., 72./paspect, 2, pix) != 0)
231                  return(-1);
232                                          /* free data and we're done */
233          free((void *)pix);
# Line 269 | Line 275 | putimage(      /* write out our image */
275          uint32  ys,
276          float   xr,
277          float   yr,
278 <        uint16 ru,
278 >        uint16  ru,
279          BYTE    *pd
280   )
281   {
# Line 294 | Line 300 | putimage(      /* write out our image */
300          TIFFSetField(tifout, TIFFTAG_IMAGEWIDTH, xs);
301          TIFFSetField(tifout, TIFFTAG_IMAGELENGTH, ys);
302          TIFFSetField(tifout, TIFFTAG_RESOLUTIONUNIT, ru);
303 +        TIFFSetField(tifout, TIFFTAG_COMPRESSION, comp);
304          TIFFSetField(tifout, TIFFTAG_XRESOLUTION, xr);
305          TIFFSetField(tifout, TIFFTAG_YRESOLUTION, yr);
306          TIFFSetField(tifout, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines