diff options
author | ppatience0 <ppatience0@gmail.com> | 2013-07-03 20:49:33 -0400 |
---|---|---|
committer | ppatience0 <ppatience0@gmail.com> | 2013-07-03 20:49:33 -0400 |
commit | e6b647e8ec1e2c4bc979541179ba093ba1cc5291 (patch) | |
tree | 4c093c112f52dc37ca9b78db678a77b6e3a97e3b /sys/src/cmd/jpg | |
parent | 883deac5739eca84e1b341417c6fe15b48475ff7 (diff) |
tif: rescale palette color map to [0, 255]
Diffstat (limited to 'sys/src/cmd/jpg')
-rw-r--r-- | sys/src/cmd/jpg/readtif.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/src/cmd/jpg/readtif.c b/sys/src/cmd/jpg/readtif.c index 75c80f27f..9d2f926e2 100644 --- a/sys/src/cmd/jpg/readtif.c +++ b/sys/src/cmd/jpg/readtif.c @@ -1286,10 +1286,16 @@ static int paldecode(Tif *t, Rawimage *im, uchar *data) { int pix, pmask, xmask; - ulong i, n, x, y, *r, *g, *b; + ulong i, n, x, y, *r, *g, *b, max; pmask = (1 << t->depth) - 1; xmask = 7 >> log2[t->depth]; + for(i = max = 0; i < t->ncolor; i++) { + if(t->color[i] > max) + max = t->color[i]; + } + for(i = 0; i < t->ncolor; i++) + t->color[i] = (t->color[i] * 0xff) / max; r = t->color; g = r + pmask + 1; b = g + pmask + 1; |