although CVT.cc also uses the color-transformations, the color profile is only
recognized in JTL.cc and applied.
The logfile only reports color conversion in the case of JTL.
First I thought that the color-transformations to srgb was done automatically
by the core of kakadu, but the
difference between kdu_render and kdu_expand shows that color information must
be supplied to the
decoder.. (I looked in the code of kdu_expand.cpp for information ;-)).
Otherwise everything is treated as RGB,
I think.
It's pretty confusing of what kakadu does in fact with the colorspace
information: does it use it only when decoding
to other formats, so leaving the source color space intact?
thanks in advance
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've had a look and it seems that Kakadu will convert automatically to sRGB,
which means that the JTL command is doing a conversion on an already converted
image. The Kakadu CVT code does not in fact do any CIELAB conversion. I guess
a simple solution would be to force the colourspace variable to sRGB in the
loadImageInfo() function in KakaduImage.cc for CIELAB images.
I'll put a more generic fix in SVN later.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've being trying to play with color spaces in kakadu (and it is pretty
confusing).
Here was my command:
kdu_compress -i lena512color_cie.tif Stiles='{256,256}' Clevels=8 Clayers=8
-rate 24 Corder=RPCL -jpx_space CIELab -no_weights -o cielab.jpx
cvt-command:
http://50.17.222.182/iip?FIF=/home/ec2-user/adobe/cielab.jpx&WID=100&CVT=jpeg
jtl-command:
http://50.17.222.182/iip?FIF=/home/ec2-user/adobe/cielab.jpx&JTL=1,1
That last image has really strange colors ;-)
although CVT.cc also uses the color-transformations, the color profile is only
recognized in JTL.cc and applied.
The logfile only reports color conversion in the case of JTL.
First I thought that the color-transformations to srgb was done automatically
by the core of kakadu, but the
difference between kdu_render and kdu_expand shows that color information must
be supplied to the
decoder.. (I looked in the code of kdu_expand.cpp for information ;-)).
Otherwise everything is treated as RGB,
I think.
It's pretty confusing of what kakadu does in fact with the colorspace
information: does it use it only when decoding
to other formats, so leaving the source color space intact?
thanks in advance
I've had a look and it seems that Kakadu will convert automatically to sRGB,
which means that the JTL command is doing a conversion on an already converted
image. The Kakadu CVT code does not in fact do any CIELAB conversion. I guess
a simple solution would be to force the colourspace variable to sRGB in the
loadImageInfo() function in KakaduImage.cc for CIELAB images.
I'll put a more generic fix in SVN later.
OK, I've updated the code in SVN to now correctly handle CIELAB to sRGB
conversion for JPEG2000. 16bit JPEG2000 is also now handled.