Thread: [Lcms-user] unicode text problem, and VCGT
An ICC-based CMM for color management
Brought to you by:
mm2
From: Richard H. <hug...@gm...> - 2009-12-10 13:50:02
|
First, an easy one. Using lcms-1.18-3.fc12.i686 and the sRGB_v4_ICC_preference.icc profile[1] I can't get the description or copyright as it's using an 'mluc' tag rather than plain 'text'. Is this supposed to work using methods such as cmsTakeProductDesc, as to return true Unicode strings you need to return a length as the string does not have to be NULL terminated. Then, a more complicated one. GNOME Color Manager uses the 'vcgt' tag[1] to get the video card gamma table from the ICC profile. I don't see any support for vcgt in the ICC specification, nor in the icc34.h header file. lcms doesn't seem to support this functionality. Is this intentional? Thanks, Richard Hughes [1] http://www.color.org/srgbprofiles.xalter [2] 0x76636774 |
From: Kai-Uwe B. <ku...@gm...> - 2009-12-10 16:10:20
|
Am 10.12.09, 13:49 -0000 schrieb Richard Hughes: > Then, a more complicated one. GNOME Color Manager uses the 'vcgt' > tag[1] to get the video card gamma table from the ICC profile. I don't > see any support for vcgt in the ICC specification, nor in the icc34.h > header file. lcms doesn't seem to support this functionality. Is this > intentional? That tag is a Apple specific one, which has become widely adopted by other systems. CMMs are not required to support private tags. Even though a CMS, which supports monitor devices can nearly not live without. You will find support for that tag in ArgyllCMS and in Oyranos/Xcalib. As mentioned in one of the previous posts, lcms2 will support generic profile tag access. kind regards Kai-Uwe Behrmann -- developing for colour management www.behrmann.name + www.oyranos.org |
From: Richard H. <hug...@gm...> - 2009-12-10 16:21:50
|
2009/12/10 Kai-Uwe Behrmann <ku...@gm...>: > That tag is a Apple specific one, which has become widely adopted by other > systems. CMMs are not required to support private tags. Even though a CMS, > which supports monitor devices can nearly not live without. Do you know why it's not in the official ICC spec, given that everything basically has to support it? > You will find support for that tag in ArgyllCMS and in Oyranos/Xcalib. > As mentioned in one of the previous posts, lcms2 will support generic > profile tag access. Yup, I'm playing with lcms2 now. Richard. |
From: Graeme G. <gr...@ar...> - 2009-12-10 16:36:43
|
Richard Hughes wrote: > Do you know why it's not in the official ICC spec, given that > everything basically has to support it? It's a private tag registered to Apple Computer, so the ICC can't just appropriate it. It's also strictly nothing to do with color profiling, since it is related to device setup rather than characterization. Apple would need to offer it to the ICC, and the ICC would have to be interested in taking it over for it to ever become an official ICC tag. Graeme Gill. |
From: Richard H. <hug...@gm...> - 2009-12-10 16:43:43
|
2009/12/10 Graeme Gill <gr...@ar...>: > It's a private tag registered to Apple Computer, so the ICC > can't just appropriate it. It's also strictly nothing to do > with color profiling, since it is related to device setup > rather than characterization. Apple would need to offer it > to the ICC, and the ICC would have to be interested in taking > it over for it to ever become an official ICC tag. Gotcha, thanks. I guess this is a perfect use of the lcms2 plugin code, from what I understand. Richard. |
From: Marti.Maria <mar...@li...> - 2009-12-11 11:50:53
|
Richard Hughes wrote: > First, an easy one. Using lcms-1.18-3.fc12.i686 and the > sRGB_v4_ICC_preference.icc profile[1] I can't get the description or > copyright as it's using an 'mluc' tag rather than plain 'text'. Is > this supposed to work using methods such as cmsTakeProductDesc, as to > return true Unicode strings you need to return a length as the string > does not have to be NULL terminated. > It should work, but unfortunately some implementations of wcstombs doesn't work. It would be fixed in next release, which adds functions to return unicode strings. > Then, a more complicated one. GNOME Color Manager uses the 'vcgt' > tag[1] to get the video card gamma table from the ICC profile. I don't > see any support for vcgt in the ICC specification, nor in the icc34.h > header file. lcms doesn't seem to support this functionality. Is this > intentional? > As said by Graeme, this is private tag owned by Apple. ICC asked Apple time ago, about the posibility of moving the tag to the public spec, but Apple choosed to keep the ownership, which is absolutely legitimate. The current lcms 2.0 codebase does supports reading and writing this tag, but no further operations. Regards Marti |
From: Richard H. <hug...@gm...> - 2009-12-11 12:08:42
|
2009/12/11 Marti.Maria <mar...@li...>: > It should work, but unfortunately some implementations of wcstombs doesn't > work. It would be fixed in next release, which adds functions to return unicode strings. Cool, you got a git tree available for testing? > which is absolutely legitimate. The current lcms 2.0 codebase does supports > reading and writing this tag, but no further operations. Shouldn't the ID be added to lcms2.h, and the functionality to decode the VCGT formula and VCGT table entries? Or should this be implemented by all the applications that need to read vcgt as a lcms2-plugin? This would be quite a lot of code duplication in my opinion. Richard. |
From: Marti.Maria <mar...@li...> - 2009-12-11 12:41:58
|
> Shouldn't the ID be added to lcms2.h, and the functionality to decode > the VCGT formula and VCGT table entries? Or should this be implemented > by all the applications that need to read vcgt as a lcms2-plugin? This > would be quite a lot of code duplication in my opinion. > Yes, cmsSigVcgtType and cmsSigVctTag are added to lcms2.h, no plug-in is needed, as many people has already asked for this functionality. If you read this tag by means of cmsReadTag(), you get an array of 3 tone curves. All decoding is done internally by the library, and you have not to worry about how (table or formula, 8 bits or 16 bits) is represented in the profile. This works for writing vcgt tags too. Ok, since the documentation on API reference is taking so long, I will put all current code in a zip and do a drop. Please let me some time. Regards Marti |
From: Richard H. <hug...@gm...> - 2009-12-11 12:58:52
|
2009/12/11 Marti.Maria <mar...@li...>: > Yes, cmsSigVcgtType and cmsSigVctTag are added to lcms2.h, no plug-in is > needed, as many people has already asked for this functionality. If you read this tag by > means of cmsReadTag(), you get an array of 3 tone curves. All decoding is done internally by the > library, and you have not to worry about how (table or formula, 8 bits or 16 bits) is represented > in the profile. This works for writing vcgt tags too. That sounds great -- I must be looking at an old version of lcms2, apologies. > Ok, since the documentation on API reference is taking so long, I will put > all current code in a zip and do a drop. Please let me some time. Excellent, thanks. Of course, if you were using github we could help you :-) Richard. |
From: Marti.Maria <mar...@li...> - 2009-12-11 15:07:50
|
Hi Richard, >> Ok, since the documentation on API reference is taking so long, I will put >> all current code in a zip and do a drop. Please let me some time. >> > > Excellent, thanks. Of course, if you were using github we could help you :-) > > Here you go: http://www.littlecms.com/lcms-2.0-Dec-11.tar.gz This is complete except for the API reference PDF document. You have, however, the tutorial and the plug-in API documentation, which should be enough for now. Whith that missing document and maybe some extra checks in the testbed lcms-2.0 would go beta. And yes, I will put sources on subversion or github. I have to evaluate different options. Regards Marti |