ICC Profiles In X Specification
This specification defines a property in X which contains the ICC profile for the screen. Using this property, applications can colour-correct images for display. So far Eye of Gnome, GIMP, Krita, UFRaw and Inkscape support the property.
The latest version of the specification is 0.2.
Another XICC Update
Another quick XICC update: Jon has just committed XICC support to Inkscape. Thanks Jon!
In other news there are patches floating around to clarify multihead usage, because my wording was pretty terrible. I'll merge these this week, honest.
XICC in UFRaw
I just got an email from Udi Fuchs of UFRaw fame. The latest version of UFRaw, 0.13, supports the XICC specification so it can adjust the image for correct display on your monitor. Great, thanks Udi!
NP: Milieu, Tape
XICC in Mozilla
I just learnt via The Daily Chump that Firefox 3 should have support for ICC profile handling when displaying images. The initial patch was to use ColorSync which won't work on Linux, but the recent patches by Tim Rowley also use the _ICC_PROFILE from my ICC Profiles In X specification when running on Linux. Excellent news, I hope this gets integrated soon.
Speaking of which, now that more applications are using this property, I should get around to extending the Screen Resolution setting in GNOME to include a colour profile selector...
NP: Kaleidoscope, DJ Food
ICC Profiles In X Specification 0.2
About 18 months after the 0.1 release of this specification comes 0.2. This is a very simple update and now specifies how to handle Xinerama-style setups where a single root window has multiple physical screens (thanks to Kai-Uwe Behrmann).
ICC Profiles In X, version 0.2, can be downloaded here.
NP: Takk, Sigur Rós
EoG ICC Patches
Quick announcement: The Eye Of Gnome patches to use the ICC Profiles In X specification are now available via Arch, at http://www.burtonini.com/arch/eog--xicc--0. Now that EoG has a maintainer (hi Tim!), I hope to get these suitable for upstream soon.
NP: Groove Salad, Soma.fm
ICC Profiles In X Specification 0.1
After an interesting discussion on openicc-list, I am releasing version 0.1 of the ICC Profiles In X specification. I'm currently re-arranging my Bazaar archives so it's not available in source form yet, but the specification in available as HTML.
So far acceptance has been remarkable. I've patched Eye Of Gnome, Sven committed support to GIMP, Krita (a KDE drawing app) might support it soon, and there is an open bug with Scribus. Finger's crossed for world domination!
NP: Out From Out Where, Amon Tobin
Colour-Calibrated Eye Of Gnome
A few days of early-morning hacking later, and I've got a proof-of-concept ICC system working. It's very simple but works well for me.
The first step is to associate an ICC profile to each screen. This can be done using xicc, from xicc-0.1.tar.gz. Simply run this specifiying the path to the relevant ICC profile and it will set the atom on the root window of the default screen (multi-screen support will be implemented next). For example:
$ xicc ~/tmp/ICM/ibmtplcd.icm
ibmtplcd.icm is the profile for the IBM ThinkPad LCDs.
Then patch Eye Of Gnome with this patch. Now when EoG opens a JPEG image which describes the colour space using the standard EXIF properties White Point and Primary Chromaticities it will create a profile on the fly, and when the image is displayed the profile for the screen is obtained and the image corrected.
There is a lot to do yet:
- Read embedded ICC profiles from JPEG and PNG files
- Read the whitepoint/chromatic information from PNG files
- Cache the profile from the screen
- Make xicc multi-screen aware
But it does work! I'll write a small specification for the atom I'm using shortly.
NP: Mrs. Cruff, Mr. Scruff
Colour Calibrated EoG Patch
I've now fixed the few small problems with my Little CMS patch for Eye Of Gnome, and it is now a lot faster and actually correct (previously it was adjusting most of the pixels hundreds of times...) If you want to give it a go, the patch is available here. It currently uses sRGB as the display profile and only creates profiles on the fly from embedded whitepoint and primary chomatic information, but will not read embeded ICC profiles. This is due to me scratching an itch, Canon EOS cameras don't embed a profile when they are using Adobe RGB.
If anyone out there has some feedback on this issue, feel free to edit the Colour Management page on the GNOME wiki.
Colour-Calibrated Eye of Gnome
Last night I got fed up of manually converting photos from my camera from Adobe RGB to sRGB for display (I had a long blog entry about this but it got lost...), that I decided to try and hack colour space support into EOG.
Working on the scratching an itch principle, my EOG will now check a JPEG image to see if it contains any embedded white point and primary colour coefficients. If it does, a ICC profile is generated from the data (using a gamma of 2.2) and the image transformed to sRGB. It's a little slow at the moment as I'm doing it row at a time, and it has a habit of crashing on the last row but one (no idea why), but if I tell it to transform only half of the image the results are impressive:
The next stage once the bugs are fixed is to make the code optional, and to handle embedded ICC profiles.
NP: F♯A♯ ∞, Godspeed! You Black Emporer