littlecms integration

Boudewijn Rempt boud at valdyas.org
Wed Nov 24 13:42:46 CET 2004


Okay, this is how I want to do the first, crude phase of littlecms 
integration. This will deliver in the first phase a simple form
of color management, not good enough for pro's, but a start, and decentish
cmyk support.

Phase I: Use littlecms for conversion between color spaces and use 
input/output/display profiles.

* Make autoconf check for the presence of littlecms.

** Profiles

	* Add profiles to krita/data/profiles (done)

	* Create a KisProfile resource in krita/core/resources

	* Implement the attached preferences tab & add to kis_dlg_preferences (Query: 
      should there be separate settings for every color model? If so, we need 
      to add settings loading and saving to the color strategy modules).

	* Store preferences in settings

	* Add an input profile combobox to the import image & scan dialogs

	* Add an export profile combobox to the export image/print dialogs

	* Add a step in KisDoc::paintContent where the default monitor profile
      is applied to the QImage at line 1157.

    * Add loading and saving of profiles associated with images in .krita 
      files.

** Color conversions

    * Replace koColor with KisColor, where KisColor is a combination of a
      byte array and a pointer to a color model

    * Precreate all littlecms transforms inside the color model constructors.

    * Remove the convertToRGBA and convertFromRGBA methods (and all calls to
      them).
	  
    * Rework the nativeColor, toKoColor, convertTo methods to use KisColor and
      littlecms for transforms.

    * In KisStrategyColorSpaceCMYK::convertToImage, use littlecms transform 
      instead of homegrown code to return an RGB QImage (and rename this
	  method to convertToQImage, since that's what it is, and do that 
      everywhere).

Phase II: Implement other channel depths than 8-bit, professional profile 
      support

    * Make color strategies, filters and other plugins that act directly on 
      channel data instead of using KisPainter to bitBlt templates.

    * Add UI for depth choice

    * Add UI for display settings for high bit depths -- we have upscale
      and downscale, but that's not enough. I want, as in OpenEXR, to be
      able 

    * Retrieve profiles from imported images (tiff, png and jpg can have
      them, for instance embedded by a calibrated scanner).

    * Export profiles in tiff, png and jpg (this and the previous item
      depend on ImageMagick or GraphicsMagick supporting this in some way.)
	
    * Support out-of-gamut warning indications for parts of an image 
      containing unprintable colours (no idea how to implement this).


I've added this laundry list to Krita's TODO, but I'm going to start working 
on phase I of colour conversions tonight.

-- 
Boudewijn Rempt | "Geef mij maar zuurtjes."
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wdgcolorsettings.ui
Type: application/x-designer
Size: 11406 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20041124/3832fea9/wdgcolorsettings.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20041124/3832fea9/attachment.pgp


More information about the kimageshop mailing list