33 |
|
int format = 'a'; /* input/output format */ |
34 |
|
char *fmtid = "ascii"; /* format identifier for header */ |
35 |
|
|
36 |
< |
int header = 1; /* do header */ |
36 |
> |
int header = 1; /* do header? */ |
37 |
|
|
38 |
+ |
int resolution = 1; /* put/get resolution string? */ |
39 |
+ |
|
40 |
|
int wrongformat = 0; /* wrong input format? */ |
41 |
|
|
42 |
|
double gamcor = 1.0; /* gamma correction */ |
47 |
|
|
48 |
|
FILE *fin; |
49 |
|
|
48 |
– |
extern double atof(), pow(); |
49 |
– |
|
50 |
|
int (*getval)(), (*putval)(); |
51 |
|
|
52 |
|
|
65 |
|
case 'h': /* header */ |
66 |
|
header = argv[i][0] == '+'; |
67 |
|
break; |
68 |
+ |
case 'H': /* resolution string */ |
69 |
+ |
resolution = argv[i][0] == '+'; |
70 |
+ |
break; |
71 |
|
case 'u': /* unique values */ |
72 |
|
uniq = argv[i][0] == '-'; |
73 |
|
break; |
117 |
|
} |
118 |
|
break; |
119 |
|
case 'x': /* x resolution */ |
120 |
+ |
resolution = 0; |
121 |
|
if (argv[i][0] == '-') |
122 |
|
picres.or |= XDECR; |
123 |
|
picres.xr = atoi(argv[++i]); |
124 |
|
break; |
125 |
|
case 'y': /* y resolution */ |
126 |
+ |
resolution = 0; |
127 |
|
if (argv[i][0] == '-') |
128 |
|
picres.or |= YDECR; |
129 |
|
if (picres.xr == 0) |
167 |
|
fprintf(stderr, "%s: wrong input format\n", progname); |
168 |
|
quit(1); |
169 |
|
} |
170 |
< |
if (picres.xr <= 0 || picres.yr <= 0) /* get resolution */ |
171 |
< |
if (!fgetsresolu(&picres, fin)) { |
172 |
< |
fprintf(stderr, "%s: missing resolution\n", |
173 |
< |
progname); |
174 |
< |
quit(1); |
175 |
< |
} |
170 |
> |
/* get resolution */ |
171 |
> |
if ((resolution && !fgetsresolu(&picres, fin)) || |
172 |
> |
picres.xr <= 0 || picres.yr <= 0) { |
173 |
> |
fprintf(stderr, "%s: missing resolution\n", progname); |
174 |
> |
quit(1); |
175 |
> |
} |
176 |
|
/* add to header */ |
177 |
|
printargs(i, argv, stdout); |
178 |
|
fputformat(COLRFMT, stdout); |
179 |
|
putchar('\n'); |
180 |
< |
fputsresolu(&picres, stdout); |
180 |
> |
fputsresolu(&picres, stdout); /* always put resolution */ |
181 |
|
valtopix(); |
182 |
|
} else { |
183 |
|
/* get header */ |
187 |
|
progname); |
188 |
|
quit(1); |
189 |
|
} |
190 |
< |
|
191 |
< |
if (picres.xr <= 0 || picres.yr <= 0) /* get picture size */ |
192 |
< |
if (!fgetsresolu(&picres, fin)) { |
193 |
< |
fprintf(stderr, "%s: missing resolution\n", |
189 |
< |
progname); |
190 |
< |
quit(1); |
191 |
< |
} |
190 |
> |
if (!fgetsresolu(&picres, fin)) { |
191 |
> |
fprintf(stderr, "%s: missing resolution\n", progname); |
192 |
> |
quit(1); |
193 |
> |
} |
194 |
|
if (header) { |
195 |
|
printargs(i, argv, stdout); |
196 |
|
fputformat(fmtid, stdout); |
197 |
|
putchar('\n'); |
198 |
|
} |
199 |
+ |
if (resolution) /* put resolution */ |
200 |
+ |
fputsresolu(&picres, stdout); |
201 |
|
pixtoval(); |
202 |
|
} |
203 |
|
|