-
2001.10.06 14:32 "Re: 16-bit ICC L*a*b* ?", by Martí Maria
- 2001.10.08 13:32 "Re: 16-bit ICC L*a*b* ?", by Bill Radcliffe
- 2001.10.25 21:53 "Re: 16-bit ICC L*a*b* ?", by Joris Van Damme
- 2001.10.26 18:28 "Re: 16-bit ICC L*a*b* ?", by Joris Van Damme
2001.10.26 12:46 "Re: 16-bit ICC L*a*b* ?", by Joris Van Damme
Substract *256* from the a,b parts if bit 8 is set, otherwise leave them alone. This give us an encodeable range of -128.0 to +127.0 If you use 255, there would be two values for 0, 0 itself and 255.
OK, much appreciated!
I don't forget to avoid ';' before end! (pascal fellows does hate this) *:^)
Do we? I wasn't aware. :-) Besides, I'm happy to get help on this, it's worth a lot of ';' to me. (Thanks!)
procedure XPVtifflab48iToVlabf(const al,aa,ab: Integer; var bl,ba,bb: Cft);
begin
bl:=al/256/2.55;
if aa < $8000 then
ba:=aa/256
else
ba:=aa/256-256;
if ab< $8000 then
bb:=ab/256
else
bb:=ab/256-256
end;
I still don't get that right. If I do it like this, my single testimage goes totally psychedelic blue and red. For this particular image the above is clearly not correct. The version I had before...
procedure XPVtifflab48iToVlabf(const al,aa,ab: Integer; var bl,ba,bb: Cft);
begin
bl:=al/256/2.55;
ba:=aa/256-128;
bb:=ab/256-128;
end;
...seems to work, and is very different. Is it possible that there are multiple incarnations of this 16bit/channel lab around? Am I allowed to send you this testimage? (It's big though, it's around 30 meg.)
Kind regards,
Joris