--- ray/src/px/ra_tiff.c 1997/08/15 18:30:14 2.11 +++ ray/src/px/ra_tiff.c 1998/10/08 11:21:52 2.16 @@ -241,14 +241,14 @@ initfromtif() /* initialize conversion from TIFF inpu if (cvts.pconf != PLANARCONFIG_CONTIG) quiterr("cannot handle separate Luv planes"); TIFFSetField(cvts.tif, TIFFTAG_SGILOGDATAFMT, - SGILOGDATAFMT_FLTXYZ); + SGILOGDATAFMT_FLOAT); cvts.tf = Luv2Color; break; case PHOTOMETRIC_LOGL: SET(C_GRY|C_RFLT|C_TFLT|C_GAMUT); cvts.pconf = PLANARCONFIG_CONTIG; TIFFSetField(cvts.tif, TIFFTAG_SGILOGDATAFMT, - SGILOGDATAFMT_FLTY); + SGILOGDATAFMT_FLOAT); cvts.tf = L2Color; break; case PHOTOMETRIC_YCBCR: @@ -278,6 +278,7 @@ initfromtif() /* initialize conversion from TIFF inpu break; case PHOTOMETRIC_MINISBLACK: SET(C_GRY|C_GAMMA|C_GAMUT); + setcolrgam(cvts.gamcor); cvts.pconf = PLANARCONFIG_CONTIG; if (!TIFFGetField(cvts.tif, TIFFTAG_SAMPLESPERPIXEL, &hi) || hi != 1) @@ -416,7 +417,7 @@ initfromrad() /* initialize input from a Radiance pi cvts.comp != COMPRESSION_SGILOG24) quiterr("internal error 2 in initfromrad"); TIFFSetField(cvts.tif, TIFFTAG_SGILOGDATAFMT, - SGILOGDATAFMT_FLTXYZ); + SGILOGDATAFMT_FLOAT); cvts.tf = Color2Luv; break; case PHOTOMETRIC_LOGL: @@ -424,7 +425,7 @@ initfromrad() /* initialize input from a Radiance pi if (cvts.comp != COMPRESSION_SGILOG) quiterr("internal error 3 in initfromrad"); TIFFSetField(cvts.tif, TIFFTAG_SGILOGDATAFMT, - SGILOGDATAFMT_FLTY); + SGILOGDATAFMT_FLOAT); cvts.tf = Color2L; break; case PHOTOMETRIC_RGB: @@ -514,9 +515,9 @@ uint32 y; quiterr("error reading TIFF input"); for (x = cvts.xmax; x--; ) { - cvts.r.colors[x][RED] = cvts.t.fp[3*x]; - cvts.r.colors[x][GRN] = cvts.t.fp[3*x + 1]; - cvts.r.colors[x][BLU] = cvts.t.fp[3*x + 2]; + colval(cvts.r.colors[x],CIEX) = cvts.t.fp[3*x]; + colval(cvts.r.colors[x],CIEY) = cvts.t.fp[3*x + 1]; + colval(cvts.r.colors[x],CIEZ) = cvts.t.fp[3*x + 2]; if (CHK(C_CXFM)) colortrans(cvts.r.colors[x], cvts.cmat, cvts.r.colors[x]); @@ -548,9 +549,10 @@ uint32 y; quiterr("error reading TIFF input"); for (x = cvts.xmax; x--; ) - cvts.r.colors[x][RED] = - cvts.r.colors[x][GRN] = - cvts.r.colors[x][BLU] = cvts.t.fp[x] > 0. ? cvts.t.fp[x] : 0.; + colval(cvts.r.colors[x],RED) = + colval(cvts.r.colors[x],GRN) = + colval(cvts.r.colors[x],BLU) = + cvts.t.fp[x] > 0. ? cvts.t.fp[x] : 0.; if (fwritescan(cvts.r.colors, cvts.xmax, cvts.rfp) < 0) quiterr("error writing Radiance picture"); @@ -579,10 +581,10 @@ uint32 y; if (TIFFReadScanline(cvts.tif, cvts.t.p, y, 0) < 0) goto readerr; if (TIFFReadScanline(cvts.tif, - (tidata_t)(cvts.t.bp + cvts.xmax), y, 1) < 0) + (tdata_t)(cvts.t.bp + cvts.xmax), y, 1) < 0) goto readerr; if (TIFFReadScanline(cvts.tif, - (tidata_t)(cvts.t.bp + 2*cvts.xmax), y, 2) < 0) + (tdata_t)(cvts.t.bp + 2*cvts.xmax), y, 2) < 0) goto readerr; for (x = cvts.xmax; x--; ) { cvts.r.colrs[x][RED] = cvts.t.bp[x]; @@ -646,7 +648,7 @@ uint32 y; double m = pow(2.,(double)cvts.bradj); register int x; - if (CHK(C_RFLT|C_TFLT) != (C_RFLT|C_TFLT) | !CHK(C_GRY)) + if (CHK(C_RFLT|C_TFLT|C_GRY) != (C_RFLT|C_TFLT|C_GRY)) quiterr("internal error 1 in Color2L"); if (freadscan(cvts.r.colors, cvts.xmax, cvts.rfp) < 0) @@ -684,9 +686,9 @@ uint32 y; } for (x = cvts.xmax; x--; ) { - cvts.t.fp[3*x] = colval(cvts.r.colors[x],RED); - cvts.t.fp[3*x+1] = colval(cvts.r.colors[x],GRN); - cvts.t.fp[3*x+2] = colval(cvts.r.colors[x],BLU); + cvts.t.fp[3*x] = colval(cvts.r.colors[x],CIEX); + cvts.t.fp[3*x+1] = colval(cvts.r.colors[x],CIEY); + cvts.t.fp[3*x+2] = colval(cvts.r.colors[x],CIEZ); } if (TIFFWriteScanline(cvts.tif, cvts.t.p, y, 0) < 0)