> Hi,
>
> > How is the value range of the float Lab's?
> > What should I deliver to cmsDoTransform()?
>
> The range of Lab as given by cmsCreateLabProfile() is :
>
> CIELAB (16 bit) L* 0 -> 100.0 0x0000 -> 0xff00
> CIELAB (16 bit) a* -128.0 -> +127.996 0x0000 -> 0xffff
> CIELAB (16 bit) b* -128.0 -> +127.996 0x0000 -> 0xffff
Does this mean:
1. You use internally 16bit integers? and
2. the doubles are in the same range?
>
> This is the encoding used by icc profiles prior to ver 4. Please note that the
> encoding on 16 bits is hardly profile dependent. For example, the TIFLab8
> profile does not use this scheme.
>
> If you want to encode/decode float values, you can do in two ways:
>
> - using TYPE_Lab_16 and then cmsLabEncoded2Float() / cmsFloat2LabEncoded(),
>
> or
>
> - using TYPE_Lab_DBL and feeding the transform directly with double values. (this
>only
> works on ver 1.10)
Does it work with double input_buffer; char output_buffer; correct:
hTrans_f32lab_rgb = cmsCreateTransform(hLab, TYPE_Lab_DBL,
hsRGB, TYPE_RGB_8,
INTENT_PERCEPTUAL, 0);
?
I use:
f32Lab[0] = src[0] * 100; // CIE L
f32Lab[1] = (src[1] - 0.5 ) * 256 ; // CIE a
f32Lab[2] = (src[2] - 0.5 ) * 256 ; // CIE b
cmsDoTransform(hTrans_f32lab_u8rgb, f32Lab, u8RGB, 1); .
The transform is build with internal sRGB and Lab:
hLab = cmsCreateLabProfile(cmsD50_xyY()); // Lab (more 16bit)
hsRGB = cmsCreate_sRGBProfile(); // why not ECI-RGB?
I can not understand what is going wrong.
> > By the way lcms seems fast enough for displaying. Congratulation.
>
> :-) Thanks for let me know
>
> Regards,
> Mart� Maria
> The little cms project
> http://www.littlecms.com
> [EMAIL PROTECTED]
Kai-Uwe
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Lcms-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/lcms-user