1 |
greg |
1.1 |
#ifndef lint |
2 |
|
|
static char SCCSid[] = "$SunId$ LBL"; |
3 |
|
|
#endif |
4 |
|
|
|
5 |
|
|
/* |
6 |
|
|
* Read and write image resolutions. |
7 |
|
|
*/ |
8 |
|
|
|
9 |
|
|
#include <stdio.h> |
10 |
|
|
|
11 |
|
|
#include "color.h" |
12 |
|
|
|
13 |
|
|
|
14 |
|
|
fputresolu(ord, xres, yres, fp) /* put x and y resolution */ |
15 |
|
|
register int ord; |
16 |
|
|
int xres, yres; |
17 |
|
|
FILE *fp; |
18 |
|
|
{ |
19 |
|
|
if (ord&YMAJOR) |
20 |
|
|
fprintf(fp, "%cY %d %cX %d\n", |
21 |
|
|
ord&YDECR ? '-' : '+', yres, |
22 |
|
|
ord&XDECR ? '-' : '+', xres); |
23 |
|
|
else |
24 |
|
|
fprintf(fp, "%cX %d %cY %d\n", |
25 |
|
|
ord&XDECR ? '-' : '+', xres, |
26 |
|
|
ord&YDECR ? '-' : '+', yres); |
27 |
|
|
} |
28 |
|
|
|
29 |
|
|
|
30 |
|
|
fgetresolu(xrp, yrp, fp) /* get x and y resolution */ |
31 |
|
|
int *xrp, *yrp; |
32 |
|
|
FILE *fp; |
33 |
|
|
{ |
34 |
|
|
char buf[64], *xndx, *yndx; |
35 |
|
|
register char *cp; |
36 |
|
|
register int ord; |
37 |
|
|
|
38 |
|
|
if (fgets(buf, sizeof(buf), fp) == NULL) |
39 |
|
|
return(-1); |
40 |
|
|
xndx = yndx = NULL; |
41 |
|
|
for (cp = buf+1; *cp; cp++) |
42 |
|
|
if (*cp == 'X') |
43 |
|
|
xndx = cp; |
44 |
|
|
else if (*cp == 'Y') |
45 |
|
|
yndx = cp; |
46 |
|
|
if (xndx == NULL || yndx == NULL) |
47 |
|
|
return(-1); |
48 |
|
|
ord = 0; |
49 |
|
|
if (xndx > yndx) ord |= YMAJOR; |
50 |
|
|
if (xndx[-1] == '-') ord |= XDECR; |
51 |
|
|
if (yndx[-1] == '-') ord |= YDECR; |
52 |
|
|
if ((*xrp = atoi(xndx+1)) <= 0) |
53 |
|
|
return(-1); |
54 |
|
|
if ((*yrp = atoi(yndx+1)) <= 0) |
55 |
|
|
return(-1); |
56 |
|
|
return(ord); |
57 |
|
|
} |