[sane-devel] ICC support for SANE

Kai-Uwe Behrmann ku.b at gmx.de
Sun May 31 16:55:12 UTC 2009


Date: Fri, 29 May 2009 09:56:16 +0200
From: Julien BLACHE <jb at jblache.org>
> Yes, but I'm not sure how well this is supported by frontends. XSane
> supports it but then saving in at least some formats goes down to
> 8bit.

PNG and Tiff can handle 16-bit per channel. The >= 8-bit version of Jpeg 
is not so commonly used.

Date: Fri, 29 May 2009 17:32:51 +0900
From: Olaf Meeuwissen <olaf.meeuwissen at avasys.jp>
> Seriously, my point is that some SANE backends do fiddle with the colour
> before returning the image data to the frontend.  TTBOMK the SANE spec
> has nothing to say on whether that is allowed or not, so the safest
> thing to assume is that it will happen.  Whether that has any knock-on
> effects for ICC, I leave to the experts to decide.

Multiple ICC colour conversions are mostly bad. The typical conversions 
are interpolations. In few special cases round tripping is ok. But this 
will almost not apply to scanner profiles (or printer and most camera 
ones).


Attributes to option names:
What would help to get things at higher API levels is tagging of 
options according to their colour relevance. This allowes frontends to 
automatically select a configured profile. One way could be to define
certain appendings to existing option names are to be considered as 
attributes and not as as part of the option name itself. Lets say all 
chars after a '.' point are considered to be attributes for 
SANE_Option_Descriptor::name :
e.g. "sane_option_gamma_r" => "sane_option_gamma_r.colour"
This could then tell about the colour relevance of the hypothetical
"sane_options_gamma_r".
This could be suggested to allow more advanced stuff at higher API levels.


ICC in backends:
For colour matching in backends is not so easy to get through all 
necessary informations. It is as well unfortune for a system, as having 
to control in man places can easily fail.

To specify a path for transportation of ICC profiles from each backend 
would increase the effort for all backend maintainers. So I guess it is 
not a good route. (This does not touch the desire to transport ICC 
profiles over the network outside of backend API's, even if that sounds 
not Sane architecture friendly.)


kind regards
Kai-Uwe Behrmann
-- 
developing for colour management 
www.behrmann.name + www.oyranos.org




More information about the sane-devel mailing list