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.1 by gwlarson, Mon Oct 26 17:05:28 1998 UTC vs.
Revision 3.2 by gwlarson, Mon Oct 26 17:30:50 1998 UTC

# Line 47 | Line 47 | char   *argv[];
47   {
48          FILE    *fin = NULL;
49          TIFF    *tin = NULL;
50 <        int     i;
50 >        int     i, rval;
51  
52          for (i = 1; i < argc && argv[i][0] == '-'; i++)
53                  switch (argv[i][1]) {
# Line 106 | Line 106 | char   *argv[];
106                  exit(1);
107          }
108          if (fin != NULL) {
109 <                tmap_picture(argv[i], fin);
109 >                rval = tmap_picture(argv[i], fin);
110                  fclose(fin);
111          } else {
112 <                tmap_tiff(argv[i], tin);
112 >                rval = tmap_tiff(argv[i], tin);
113                  TIFFClose(tin);
114          }
115          TIFFClose(tifout);
116 <        exit(0);
116 >        exit(rval==0 ? 0 : 1);
117   userr:
118          fprintf(stderr,
119   "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",
# Line 165 | Line 165 | double *pr;
165   }
166  
167  
168 + int
169   tmap_picture(fname, fp)                 /* tone map Radiance picture */
170   char    *fname;
171   FILE    *fp;
# Line 177 | Line 178 | FILE   *fp;
178                                          /* read and tone map picture */
179          if (tmMapPicture(&pix, &xsiz, &ysiz, flags,
180                          rgbp, gamv, lddyn, ldmax, fname, fp) != TM_E_OK)
181 <                exit(1);
181 >                return(-1);
182                                          /* get relevant header info. */
183          rewind(fp);
184          pixrat = 1.;
# Line 190 | Line 191 | FILE   *fp;
191                                  break;
192          orient++;
193                                          /* put out our image */
194 <        putimage(orient, (uint32)xsiz, (uint32)ysiz, 72., 72./pixrat, 2, pix);
194 >        if (putimage(orient, (uint32)xsiz, (uint32)ysiz,
195 >                        72., 72./pixrat, 2, pix) != 0)
196 >                return(-1);
197                                          /* free data and we're done */
198          free((char *)pix);
199 +        return(0);
200   }
201  
202  
# Line 207 | Line 211 | TIFF   *tp;
211                                          /* check to make sure it's SGILOG */
212          TIFFGetFieldDefaulted(tp, TIFFTAG_PHOTOMETRIC, &phot);
213          if (phot != PHOTOMETRIC_LOGLUV && phot != PHOTOMETRIC_LOGL) {
214 <                fprintf(stderr, "%s: TIFF must be in SGILOG format\n", fname);
215 <                exit(1);
214 >                if (!(flags & TM_F_NOSTDERR)) {
215 >                        fputs(fname, stderr);
216 >                        fputs(": TIFF must be in SGILOG format\n", stderr);
217 >                }
218 >                return(-1);
219          }
220          if (phot == PHOTOMETRIC_LOGL)
221                  flags |= TM_F_BW;
222                                          /* read and tone map TIFF */
223          if (tmMapTIFF(&pix, &xsiz, &ysiz, flags,
224                          rgbp, gamv, lddyn, ldmax, fname, tp) != TM_E_OK)
225 <                exit(1);
225 >                return(-1);
226                                          /* get relevant tags */
227          TIFFGetFieldDefaulted(tp, TIFFTAG_RESOLUTIONUNIT, &resunit);
228          TIFFGetFieldDefaulted(tp, TIFFTAG_XRESOLUTION, &xres);
229          TIFFGetFieldDefaulted(tp, TIFFTAG_YRESOLUTION, &yres);
230          TIFFGetFieldDefaulted(tp, TIFFTAG_ORIENTATION, &orient);
231                                          /* put out our image */
232 <        putimage(orient, (uint32)xsiz, (uint32)ysiz, xres, yres, resunit, pix);
232 >        if (putimage(orient, (uint32)xsiz, (uint32)ysiz,
233 >                        xres, yres, resunit, pix) != 0)
234 >                return(-1);
235                                          /* free data and we're done */
236          free((char *)pix);
237 +        return(0);
238   }
239  
240  
# Line 274 | Line 284 | BYTE   *pd;
284                          if (TIFFWriteScanline(tifout, pd + y*3*xs, y, 0) < 0)
285                                  goto writerr;
286          }
287 <        return;                         /* all done! */
287 >        return(0);                      /* all done! */
288   writerr:
289          fputs("Error writing TIFF output\n", stderr);
290 <        exit(2);
290 >        return(-1);
291   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines