33 |
|
|
34 |
|
int header = 1; /* do header */ |
35 |
|
|
36 |
< |
double exposure = 1.0; |
36 |
> |
COLOR exposure = WHTCOLOR; |
37 |
|
|
38 |
|
char *progname; |
39 |
|
|
156 |
|
checkhead(line) /* deal with line from header */ |
157 |
|
char *line; |
158 |
|
{ |
159 |
+ |
double d; |
160 |
+ |
COLOR ctmp; |
161 |
+ |
|
162 |
|
if (header) |
163 |
|
fputs(line, stdout); |
164 |
< |
if (!strncmp(line, "EXPOSURE=", 9)) |
165 |
< |
exposure *= atof(line+9); |
164 |
> |
if (isexpos(line)) { |
165 |
> |
d = 1.0/exposval(line); |
166 |
> |
scalecolor(exposure, d); |
167 |
> |
} else if (iscolcor(line)) { |
168 |
> |
colcorval(ctmp, line); |
169 |
> |
colval(exposure,RED) /= colval(ctmp,RED); |
170 |
> |
colval(exposure,GRN) /= colval(ctmp,GRN); |
171 |
> |
colval(exposure,BLU) /= colval(ctmp,BLU); |
172 |
> |
} |
173 |
|
} |
174 |
|
|
175 |
|
|
200 |
|
else |
201 |
|
copycolor(lastc, scanln[x]); |
202 |
|
if (original) |
203 |
< |
scalecolor(scanln[x], 1.0/exposure); |
203 |
> |
multcolor(scanln[x], exposure); |
204 |
|
if (!dataonly) |
205 |
|
printf("%7d %7d ", x, y); |
206 |
|
if ((*putval)(scanln[x], stdout) < 0) { |
269 |
|
{ |
270 |
|
double vd[3]; |
271 |
|
|
272 |
< |
if (fread(vd, sizeof(double), 3, fp) != 3) |
272 |
> |
if (fread((char *)vd, sizeof(double), 3, fp) != 3) |
273 |
|
return(-1); |
274 |
|
setcolor(col, vd[0], vd[1], vd[2]); |
275 |
|
return(0); |
282 |
|
{ |
283 |
|
float vf[3]; |
284 |
|
|
285 |
< |
if (fread(vf, sizeof(float), 3, fp) != 3) |
285 |
> |
if (fread((char *)vf, sizeof(float), 3, fp) != 3) |
286 |
|
return(-1); |
287 |
|
setcolor(col, vf[0], vf[1], vf[2]); |
288 |
|
return(0); |
308 |
|
{ |
309 |
|
BYTE vb[3]; |
310 |
|
|
311 |
< |
if (fread(vb, sizeof(BYTE), 3, fp) != 3) |
311 |
> |
if (fread((char *)vb, sizeof(BYTE), 3, fp) != 3) |
312 |
|
return(-1); |
313 |
|
setcolor(col,(vb[0]+.5)/256.,(vb[1]+.5)/256.,(vb[2]+.5)/256.); |
314 |
|
return(0); |
334 |
|
{ |
335 |
|
double vd; |
336 |
|
|
337 |
< |
if (fread(&vd, sizeof(double), 1, fp) != 1) |
337 |
> |
if (fread((char *)&vd, sizeof(double), 1, fp) != 1) |
338 |
|
return(-1); |
339 |
|
setcolor(col, vd, vd, vd); |
340 |
|
return(0); |
347 |
|
{ |
348 |
|
float vf; |
349 |
|
|
350 |
< |
if (fread(&vf, sizeof(float), 1, fp) != 1) |
350 |
> |
if (fread((char *)&vf, sizeof(float), 1, fp) != 1) |
351 |
|
return(-1); |
352 |
|
setcolor(col, vf, vf, vf); |
353 |
|
return(0); |
376 |
|
BYTE vb; |
377 |
|
double d; |
378 |
|
|
379 |
< |
if (fread(&vb, sizeof(BYTE), 1, fp) != 1) |
379 |
> |
if (fread((char *)&vb, sizeof(BYTE), 1, fp) != 1) |
380 |
|
return(-1); |
381 |
|
d = (vb+.5)/256.; |
382 |
|
setcolor(col, d, d, d); |
406 |
|
vf[0] = colval(col,RED); |
407 |
|
vf[1] = colval(col,GRN); |
408 |
|
vf[2] = colval(col,BLU); |
409 |
< |
fwrite(vf, sizeof(float), 3, fp); |
409 |
> |
fwrite((char *)vf, sizeof(float), 3, fp); |
410 |
|
|
411 |
|
return(ferror(fp) ? -1 : 0); |
412 |
|
} |
421 |
|
vd[0] = colval(col,RED); |
422 |
|
vd[1] = colval(col,GRN); |
423 |
|
vd[2] = colval(col,BLU); |
424 |
< |
fwrite(vd, sizeof(double), 3, fp); |
424 |
> |
fwrite((char *)vd, sizeof(double), 3, fp); |
425 |
|
|
426 |
|
return(ferror(fp) ? -1 : 0); |
427 |
|
} |
453 |
|
vb[1] = min(i,255); |
454 |
|
i = colval(col,BLU)*256.; |
455 |
|
vb[2] = min(i,255); |
456 |
< |
fwrite(vb, sizeof(BYTE), 3, fp); |
456 |
> |
fwrite((char *)vb, sizeof(BYTE), 3, fp); |
457 |
|
|
458 |
|
return(ferror(fp) ? -1 : 0); |
459 |
|
} |
476 |
|
float vf; |
477 |
|
|
478 |
|
vf = bright(col); |
479 |
< |
fwrite(&vf, sizeof(float), 1, fp); |
479 |
> |
fwrite((char *)&vf, sizeof(float), 1, fp); |
480 |
|
|
481 |
|
return(ferror(fp) ? -1 : 0); |
482 |
|
} |
489 |
|
double vd; |
490 |
|
|
491 |
|
vd = bright(col); |
492 |
< |
fwrite(&vd, sizeof(double), 1, fp); |
492 |
> |
fwrite((char *)&vd, sizeof(double), 1, fp); |
493 |
|
|
494 |
|
return(ferror(fp) ? -1 : 0); |
495 |
|
} |
514 |
|
|
515 |
|
i = bright(col)*256.; |
516 |
|
vb = min(i,255); |
517 |
< |
fwrite(&vb, sizeof(BYTE), 1, fp); |
517 |
> |
fwrite((char *)&vb, sizeof(BYTE), 1, fp); |
518 |
|
|
519 |
|
return(ferror(fp) ? -1 : 0); |
520 |
|
} |