--- ray/src/px/ra_tiff.c 1994/02/27 10:17:27 2.6 +++ ray/src/px/ra_tiff.c 1995/10/30 10:56:57 2.8 @@ -19,13 +19,15 @@ static char SCCSid[] = "$SunId$ LBL"; #include "resolu.h" +#define GAMCOR 2.2 /* default gamma */ + extern char *malloc(), *realloc(); int lzcomp = 0; /* use Lempel-Ziv compression? */ int greyscale = 0; /* produce greyscale image? */ -double gamcor = 2.2; /* gamma correction */ +double gamcor = GAMCOR; /* gamma correction */ int bradj = 0; /* brightness adjustment */ @@ -122,10 +124,12 @@ char *inpf, *outf; if (!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &hi) || hi != 8) quiterr("unsupported bits per sample"); if (TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &hi) && - hi != (nsamps==1 ? 1 : 2)) + hi != (nsamps==1 ? PHOTOMETRIC_MINISBLACK : + PHOTOMETRIC_RGB)) quiterr("unsupported photometric interpretation"); if (!TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &pconfig) || - (pconfig != 1 && pconfig != 2)) + (pconfig != PLANARCONFIG_CONTIG && + pconfig != PLANARCONFIG_SEPARATE)) quiterr("unsupported planar configuration"); if (!TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &xmax) || !TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &ymax)) @@ -143,6 +147,8 @@ char *inpf, *outf; fputs(progname, stdout); if (bradj) printf(" -e %+d", bradj); + if (gamcor != GAMCOR) + printf(" -g %f", gamcor); fputs(" -r\n", stdout); fputformat(COLRFMT, stdout); putchar('\n'); @@ -217,10 +223,13 @@ char *inpf, *outf; TIFFSetField(tif, TIFFTAG_IMAGELENGTH, (unsigned long)ymax); TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, greyscale ? 1 : 3); TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8); - TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, greyscale ? 1 : 2); - TIFFSetField(tif, TIFFTAG_PLANARCONFIG, 1); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, + greyscale ? PHOTOMETRIC_MINISBLACK : + PHOTOMETRIC_RGB); + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); if (lzcomp) - TIFFSetField(tif, TIFFTAG_COMPRESSION, (unsigned short)5); + TIFFSetField(tif, TIFFTAG_COMPRESSION, + (unsigned short)COMPRESSION_LZW); /* allocate scanlines */ scanin = (COLR *)malloc(xmax*sizeof(COLR)); scanout = (BYTE *)malloc(TIFFScanlineSize(tif));