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

Comparing ray/src/px/ra_bn.c (file contents):
Revision 1.6 by greg, Fri Oct 19 21:44:29 1990 UTC vs.
Revision 2.4 by greg, Fri Oct 2 16:24:56 1992 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1986 Regents of the University of California */
1 > /* Copyright (c) 1992 Regents of the University of California */
2  
3   #ifndef lint
4   static char SCCSid[] = "$SunId$ LBL";
# Line 12 | Line 12 | static char SCCSid[] = "$SunId$ LBL";
12  
13   #include  <stdio.h>
14  
15 + #ifdef MSDOS
16 + #include  <fcntl.h>
17 + #endif
18 +
19 + #include  <math.h>
20 +
21   #include  "color.h"
22  
23 < extern double  atof(), pow();
23 > #include  "resolu.h"
24  
25 + extern char  *malloc();
26 +
27   double  gamma = 2.0;                    /* gamma correction */
28  
29 + int  bradj = 0;                         /* brightness adjustment */
30 +
31   char  *progname;
32  
33   char  errmsg[128];
# Line 33 | Line 43 | char  *argv[];
43   {
44          int  reverse = 0;
45          int  i;
46 <        
46 > #ifdef MSDOS
47 >        extern int  _fmode;
48 >        _fmode = O_BINARY;
49 >        setmode(fileno(stdin), O_BINARY);
50 >        setmode(fileno(stdout), O_BINARY);
51 > #endif
52          progname = argv[0];
53  
54          for (i = 1; i < argc; i++)
# Line 45 | Line 60 | char  *argv[];
60                          case 'r':
61                                  reverse = !reverse;
62                                  break;
63 +                        case 'e':
64 +                                if (argv[i+1][0] != '+' && argv[i+1][0] != '-')
65 +                                        goto userr;
66 +                                bradj = atoi(argv[++i]);
67 +                                break;
68                          default:
69                                  goto userr;
70                          }
# Line 69 | Line 89 | char  *argv[];
89                  }
90                                          /* put header */
91                  printargs(i, argv, rafp);
92 +                fputformat(COLRFMT, rafp);
93                  putc('\n', rafp);
94 <                fputresolu(YMAJOR|YDECR, xmax, ymax, rafp);
94 >                fprtresolu(xmax, ymax, rafp);
95                                          /* convert file */
96                  bn2ra();
97          } else {
# Line 84 | Line 105 | char  *argv[];
105                          quiterr(errmsg);
106                  }
107                                          /* get header */
108 <                getheader(rafp, NULL);
109 <                if (fgetresolu(&xmax, &ymax, rafp) != (YMAJOR|YDECR))
108 >                if (checkheader(rafp, COLRFMT, NULL) < 0 ||
109 >                                fgetresolu(&xmax, &ymax, rafp) < 0)
110                          quiterr("bad RADIANCE format");
111                  if (openbarney(argv[i+1], "w") < 0) {
112                          sprintf(errmsg, "cannot open output \"%s\"", argv[i+1]);
# Line 96 | Line 117 | char  *argv[];
117          }
118          quiterr(NULL);
119   userr:
120 <        fprintf(stderr, "Usage: %s [-g gamma] {input|-} output\n", progname);
100 <        fprintf(stderr, "   or: %s -r [-g gamma] input [output|-]\n",
120 >        fprintf(stderr, "Usage: %s [-g gamma][-e +/-stops] {input|-} output\n",
121                          progname);
122 +        fprintf(stderr, "   or: %s -r [-g gamma][-e +/-stops] input [output|-]\n",
123 +                        progname);
124          exit(1);
125   }
126  
# Line 176 | Line 198 | ra2bn()                                        /* convert radiance to barneyscan */
198          for (j = 0; j < ymax; j++) {
199                  if (freadcolrs(inl, xmax, rafp) < 0)
200                          quiterr("error reading RADIANCE file");
201 +                if (bradj)
202 +                        shiftcolrs(inl, xmax, bradj);
203                  colrs_gambs(inl, xmax);
204                  for (i = 0; i < xmax; i++) {
205                          putc(inl[i][RED], bnfp[0]);
# Line 206 | Line 230 | bn2ra()                                        /* convert barneyscan to radiance */
230                  if (feof(bnfp[0]) || feof(bnfp[1]) || feof(bnfp[2]))
231                          quiterr("error reading barney file");
232                  gambs_colrs(outline, xmax);
233 +                if (bradj)
234 +                        shiftcolrs(outline, xmax, bradj);
235                  if (fwritecolrs(outline, xmax, rafp) < 0)
236                          quiterr("error writing RADIANCE file");
237          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines