Ikone CinePaint – 16-bit imaging. From digital camera to print

Working with digital Images
Calibrated versus uncalibrated
Working with Camera RAW data
Calibrated in CinePaint
Colour Management Preferences
Assigning a profile
The Printout
Rendering Intents
About this document


Colour management within the guidelines of the International Color Consortium (ICC ) is very wide spread and a in some fields very successful method. Goals are the improvement of quality and the most identical exchange across application and system borders. Therefore its importance in the open source world will increase.
Working on an not everydays motive we will show a photograph workflow within CinePaint within this tutorial.
This tutorial is written with attention to preserve the photographical information during all steps of manipulation. The used colour spaces have enough precision and gamut to hold all nuances and level of saturation without substantial loss of fine colour details or changing of strong saturated colours within device gamuts.


Reading this tutorial needs serious photographic knowledge from readers side. Terms like gradation, white point, colour depth and editing of curves are expected to be known.
Colour depth means in this article always on single channel, from three for Rgb images. The used images should have 10 or more bit precision (or bit depth) per channel. Profiling and device settings can not be handled in this text.
The covered program versions are:
DCraw - 7.81
UFraw - 0.4
CinePaint - 0.20

Working with digital images

Because there are so many possibilities in a digital photographic workflow, it may be interesting to have guidelines for an good orientation. I will give some very basic rules for work with digital images:
Original raw data
should be preserved wherever economically possible. They are very often a better starting point for derivatives than anything else. As well in a future workflow you may get more out of hidden qualities from your raw data than you expect today.
Open documented formats
RAW for instance offers its advantages in the long run only, when it becomes standardised like in the 'Digital Negative Formate' DNG or alternatively TIFF or PNG
Colour references
are always a good idea to place in a image, either a reference image like a gray scale card or tag the image with a profile describing the devices behaviour.
looseless compression
should be used for manipulation and archiving (PNG and TIFF)
high colour- and geometric resolution
don't throw away, overhead is always good thing for manipulation and archiving
fit format and resolution to needs
of your actual usage, for instance, use highly compressionable formats for Internet content (JPEG) as well as a smaller geometrical resolutions
Related to digital cameras I like to point to the OpenRaw initiative. It is mostly a user activity to promote open standards for digital cameras. All parts of the image belong to the photographers work and shall not be encrypted or otherwise made unreachable by the original author. The demand is stated to deliver data in an open documented format like the tiff based DNG.

Calibrated versus uncalibrated

Camera manufacturers calibrate they're devices very often in a good manner. The results are accordingly good. The calibration is used for the internal conversion to 8-bit jpegs for consumer cameras. Software from manufacturers of higher quality camera allows freely selectable camera profiles, and as well applying the profile to the original bit depth of the sensor. With the individual profile one can colourimetrically better match a situation. A often missed feature is a free selectable target profile. CinePaint don't knows such limitation. Of course the raw image must be supported by the file loader.
Because of many sensors are working not completely linear, a colour correction with three dimensional colour tables is suggested. The tables can be stored in ICC profiles. None the less good results from a artists point of view can be achived without any calibration if there is no need to match the original scene. But this is very subjective.
For preparing images for reproduction on different kind of media there are not much alternatives to ICC profiles. Especially if you want a similar or the same appearance on different media and like to communicate appearance and colour reliable.
But don't forget, profiles do not substitute long years experienced printers.

Surely it will take some time to have ICC profiles available for many cameras by default. If you have calibrated a camera from DCraws 16-bit raw calibration data (with the standard options in CinePaint), think the resulting profile is useful and like to share it, you can post it to Kai-Uwe Behrmann <ku.b at gmx.de>, for publication over the Internet.

Working with camera RAW data


Dave Coffin publishes with his DCraw application a program for converting sensor data (camera raw) to RGB data. DCraw allows, applying the white point, measured during the photo shoot, to the linear RGB data. Since version 7.00 DCraw converts the image data with internal matrices as well for 16-bit output. Images are instantly visible and the editing effort is reduced by this good default corrections. In CinePaint are enough tools available to additionally do the usual, necessary corrections. The final results are, thanks Dave Coffins decoding of the native RAW formats, very good and deliver often better results than the manufacturers own standard programs. Yet missed in CinePaint is a automatic compensation of lens vignetting, which would be a advantage for mostly cheaper lenses.

Dave Coffin has introduced, much to the joy of the author, support for medium format camera backends. The raw images can be batch processed and then loaded in the intermediate PPM format into CinePaint.
In the following text I will introduce the reader in two typical camera RAW software workflows: Manipulation with Ufraw without camera profile and direct loading and assigning of a individual camera profile in CinePaint.

Ikone Ufraw

Based in Dave Coffin's dcraw exist some programs, which try to get more out of camera RAW , or to be precise linear RGB data. One such open source application is Ufraw.
To use together with CinePaint, call ufraw as standalone program and open the camera RAW in the usual way as a file.
Korrekturen The top slider, "exposure", is as well the most important one. He influences the lightness in the image.
In the "White Balance" area the "Use camera white point" setting results almost in good results. If an other is wished, the user can set one in the image or use sliders to do so.
The "Color Management" area contains selectors of profiles. Ufraw don't offers a dedicated mode to work with device profiles, which don't saves changes or tweakings to the current settings. This is necessary as such a change changes the assumption the device profile is based on.
In the "Curves corrections" area you will find sliders for gradation ("gamma"), saturation and parameters for shadows and below the very useful histogram. The ufraw preview is a little bit tricky as it don't considers a monitor profile. Using a profile with large gamut the preview appears too unsaturated. Nevertheless in my case a setting of saturation to 1.0 or 1.2 resulted in nearly natural colours, like checked later in CinePaint or Scribus. The switches below the histogram "Indicate exposure" and "Indicate underexposure" allow a check for areas, which will be colour clipped in the final image. Such colours are not fitting in the gamut of the selected workspace and being accordingly too light (marked black) or too dark (marked white). During the first try of Ufraw it is useful to play with the sliders in Ufraw to gain better understanding what the different sliders are intended for.

Speichern The finally corrected image is then saved as a 16-bit Tiff for CinePaint. Afterward it can be loaded in CinePaint.

IkoneCalibrated in CinePaint

In CinePaint either a camera RAW file is loaded or a prepared 16-bit Tiff from Ufraw.

Colour Management Preferences

CinePaint need some first done settings, which allows the applications build in colour management system, to react under different situation according to the wishes of the user. The following dialog can be found in the menu: "File" −> "Preferences...". In the card "Directories" in the field: "ICC Profile directory:" you can change the profile search path for ICC profiles. Standard is /usr/share/color/icc for system wide profiles and ~/.color/icc for profiles of the user on Linux.
Voreinstellungen With the standard profile selector: "Assumed image profile:", you can set a profile as source for untagged image data. For a scanner workstation this could be the scanner profile for instance. For a print house it would be the house intern offset device profile. Usually sRGB is the best setting for most cases.
Below you will find the selector of the editing colour space (or workspace). Here is best a well behaving colour space to been selected. Device colour spaces, which are selectable as well, should only be chosen here for special cases.
The "Display profile:" chooser should fit to the workstation in front of you. For softproofing a profile should be chosen, which was profiled for the used grafic card/monitor combination. Currently this setting is not network transparent. This will change in a future version of CinePaint.
The "Proofing profile" is used for simulating a output device and as print profile.
The "Default rendering intent:" setting will be explained more in depth in the Print chapter.
I suggest to switch "Colormanage new displays by default" on for your work with ICC profiles. Otherwise you have to switch colour management on for each view of the image.
This should be enough by now.


Laden We start with the build in rawphoto-PlugIn from Dave Coffin. Drag a camera RAW image from a Gtk-application and drop it to the toolbox of CinePaint, or open with the file selector under menu: "File" −> "Open...". The settings of the rawphoto dialog should almost stay the same.

Assigning a profile

Menü Now you can select from the upper image menu under "Image" the entry "Assign ICC Profile...". The image profile dialog appears. This is the place to set the device profile.
Alternatively you can set in CinePaints preferences a standard of type image profile (menu: "File" −> "Preferences ..." −> "Color Management" −> "Default image profile:"). You can use this setting in a situation, where many untagged source images all shall been tagged with the same profile.
Profil zuweisen

kalibriert On the left you can see the loaded image, with assigned camera profile. It is now corrected by default in CinePaint to the monitor. The image looks much better. We will use the device profile for our future manipulations.
Now we prepare for manual corrections: from the image menu (the menu bar above the image) select "Image" −> "Convert using ICC Profile...". We can here select a editing space profile for converting. This is useful for proper editing, because a usual editing space profile is more evenly set up than most devices can be. I selected the LStar-RGB like with Ufraw.


kalibriert To continue with our corrections we call the levels dialog (image menu: "Image" −> "Colors" −> "Levels"). Here we set white and black point. The eye dropper tool allows us to work intuitively on the image, promising the most success. After setting this two points we may set a gray point, but for difficult light situations only.
To find a useful point in the image to set a correction point is very important for work with eye droppers. The histogram helps finding the darkest and lightest points, while showing the actual place in the image. In smaller images it is possible to press the mouse button and move over the image tho see the correction effect almost instantly.
The result is shown here in comparison to the Ufraw one. Left calibrated and slightly corrected in CinePaint, right hand without calibration from Ufraw.
mit Weisspunkt aus Ufraw
Saturation In order to make the right image looking like the left image, we can change the saturation in the curves dialog. Therefore we convert the Ufraw image to the CIE*Lab colour space. This equally spaced appearing colour space allows us to do manipulations, which are human vision alike. The conversion can be done like already described. The "Rendering Intent" selector, below the profile selector, is set to "Relative Colorimetric". Using such tells littleCMS colour module (lcms) to convert without changes in colour space. More details about this setting can be found later under the Print chapter.
Now we change saturation. We need the curves dialog. The dialog is placed one menu entry above the "Levels" dialog. In the upper selector you can now select "Saturation". Dragging on the curve changes the saturation. The lightness can be changed with a curve called "CIE Lightness", as well selectable from the upper selector. These manipulations are specific to the CIE*Lab colour space.
Now again our two images: left calibrated, right hand from Ufraw after correcting in CinePaint.
mit Weisspunkt aus Ufraw korrigiert

Conclusion: Ufraw works quickly. For more control I recommend CinePaint with its many tools and its calibrated preview.

The Printout

In order to print to a installed printer with CinePaint, it needs the Gutenprint library. I like to give a short introduction to proofing technics as well with Gutenprint. Gutenprint since version 5.0.0rc1 will expectedly have no more changes in the colour code, except for very new models like R300.


kalibriert For the separation in a 4-channel colour space (like cmyk) the colour conversion dialog can be called (image menu: "Image" −> "Convert using ICC Profile..."). Before this a alpha channel needs to be in the image (image menu: "Image" −> "Alpha" −> "Add Alpha Channel"). We duplicate the calibrated IT8 test chart and separate as described above. The destination colour spaces belongs in our example to a offset print machine.

Rendering intents

Rendering Intent is used as a switch to alter the conversion process to a particular behaviour, regarding colours which are outside gamut or near gamut borders. For instance the deepest blue of a monitor is difficult to show on a printing device. The rendering intents offers opportunities for mapping this unprintable colour to a printable colour.
Our colour conversion can be done with four standard "Rendering Intents":
PerceptualRelative ColorimetricSaturationAbsolute Colorimetric
Fotografisch Relativ Farbmetrisch Sättigung Absolut Farbmetrisch
Fotografisch Relativ Farbmetrisch Sättigung Absolut Farbmetrisch
profile dependent
Colours are transformed equally spaced
The appearence of the original image is rendered to the output medium.
profile independent
Colours which are within the target gamut are mapped 1:1, colours outside gamut are mapped to the nearest colour at the gamut of the target colour space.
The source white point is transformed to target white point.
maximum saturation, has nearly no practical importance profile independent
like Relative Colorimetric
without maintaining the white point
Clearly observable are the differences between the perceptual and relative colorimetric rendering intent. While the perceptual rendering intent differentiates between highly saturated colours, all other rendering intents show a clustering of colour patches. The clogging of colour locations is fine observable in the 3D views below.
The following table shows the position of colour points of the above images in the CIE*Lab colour space and the gamut of the print colour space. The rendering intent Saturation is not shown. The offset colour space is shaded gray. Down right is the coloured LStar-RGB colour space with the not yet separated colours drawn.
PerceptualRelative ColorimetricAbsolute Colorimetric / Original
Fotografisch Relativ Farbmetrisch Absolut Farbmetrisch
Fotografisch Relativ Farbmetrisch Original


image_menu view_menu Softproofing is a simulation of a device colour space of choice on the monitor. The displaying of a CMYK image (tagged with the separation profile) and a profile matching the monitor/graphic card is already a softproof. CinePaint supports since version 0.20 the setting of a proofing profile for each display. The image obtains the simulation colour space assigned as proofing profile (in our case to "ISO Uncoated Yellowish"). This proofing profile can be selected under the upper menu in the image, menu entry "Image" −> "Assign ICC Proof Profile...". Under the upper menu: "View" −> "Proof Display" the proofing profile can be activated and deactivated. As well it is possible to mark out of proofing profile gamut colours. Switch in the upper menu: "View" −> "Gamut Check Display" temporarily on.
The proofing profile is not saved with the image. A often used proofing profile can be preselected in the preferences.
OriginalPhoto printerISO Uncoated Yellowish
EPS2100 EPS2100 ISO Uncoated Yellow
Some original colours of the IT8 calibration chart (within the light LStar-RGB) are looking outside the coloured monitor and gray photo printer colour spaces.
This means, you can always expect colour shifts somewhere for highly saturated colours during the separation to the print colour space.
Big colour space areas of the photo printer (light gray) are not displayable in the monitor colour space (coloured).
less suitable for softproofing
Nearly all colour of "ISO Uncoated Yellowish" can be shown in the monitor colour space (coloured).
useful for softproofing
A softproof is by theory possible for every device, provided the device character is stored in a profile. Anyway the expectations to this method should not be too high. Some main reasons for scepticism are:
  1. A monitor image can not be signed. It is not suitable for a contract.
  2. Monitors are emitting while paper reflects; to make booth appear the same needs some experience and additional devices.
  3. To send the media monitor is not relevant; other with paper.
  4. There are possibly some colours outside the monitor gamut.
Softproofing is useful for internal work, where the users know each workplace and can rely on the appearance on the remote side. Then a softproof is highly effective and quick. For external partners or customers it is not very often used.


To avoid the disadvantages of softproofs and to not do a expensive full run on the end device, the traditional method of a simulation print on a colorimatrically more able device (photo printer) than the target device (offset) is often chosen.
Foto/ISO Uncoated Yellow Here is gray the colour space of the photo printer shown, our IT8 test chart patches, perceptual rendered into the "ISO Uncoated Yellowish" colour space (coloured). The targeted simulation seems to be possible without any deformations of the colour space. All patches from the "ISO Uncoated Yellowish" colour space of our idealised offset machine are fitting nicely in the gamut of the photo printer.
For a hardproof we need to separate the image to the simulation devices colour space. Therefore we need the rendering intent of the final printout.
Afterward the print house ready separated image is printed with the internal print plug-in to the local photo printer.
Separations Dialog You reach the separation dialog over the image menu: "File" −> "Print". As rendering intent we choose "Relative colorimetric" and leave all the other settings. As the "Separation Profile" is the proofing profile preselected. If this fits your simulating inkjet you leave this setting or select the according profile.
With version 1.15 littleCMS supports preservation of the black or K channel. This is preselected in the plug-in.
Now the image should be separated from the offset CMYK colour space to the photo printer (proofer) CMYK colour space by littleCMS. After a while the newly separated image appears and then the Gutenprint dialog pops up. There we select the proper photo printer and avoid changing any colour influencing settings. The image can been placed and resized on the shed. It is represented by the black rectangle. And then print.
With the stable version of Gutenprint 5.0.0rc1 you can as well order profiles from a service bureaus. Gutenprint should then not touch the colour formulas for already supported models. So for instance a version 5.0.0 to version 5.0.3 shift should not degrade your profile. Note newest models, like the R300, are still colour tweaked in Gutenprint. For print houses which are regularly need to recalibrate that's not an issue. A linearisation is currently not supported. In case you need it, please contact me at <ku.b at gmx.de>.

Much fun and success with CinePaint.

Kai-Uwe Behrmann
Developer and Colour Management Consultant

About producing this document and the used tools:
The screen shoots and grafics where done with CinePaint's snapshot plug-in. The IT8 test chart I photographed with a Canon 300D in RAW mode. The used profiles comes from littleCMS, ECI or where sponsored by AZP Chemnitz and Gretag. They are freely available and downloadable as rpm packages from the current Oyranos download page at my web site.
Logo The colour space visualisations where done with the profile and colour space viewer "ICC Examin". This application is a GPL licensed open source program. If you want to use it together with CinePaint it is needed to been installed separately. The program is as well on my web site www.behrmann.name available. You can call the plug-in part in CinePaint at image menu: "Filter" −> "ICC Color" −> "Watch Colour" or the entry "Image Profile" or "Proof Profile" for viewing the profile internals.

This HTML Document was written with "vim".

Chemnitz/Germani, September/October 2005
(c) Kai-Uwe Behrmann

A warranty for correctness and completeness as well as reliability for eventually occurring damages can not taken over, unless it is required by applicable law. The author has no influence to the content of external links. So a responsibility can not taken over.
[09. November 2005 : Version 1.3en]
[31. Oktober 2005 : Version 1.3]
[06. July 2005 : Version 1.2en]
[10. Juni 2005 : Version 1.2]
[09. Juni 2005 : Version 1.1]