[sane-devel] Current TODO list

Karl Heinz Kremer khk@khk.net
Sun, 27 Jul 2003 07:43:40 -0400

On Sunday, July 27, 2003, at 05:00 AM, Henning Meier-Geinitz wrote:
[ ... ]
>> On the other side I see that the functionality should be available for
>> any scanner. Why not bringing it in the backend (again, due to lack of
>> programming know how i do not know if possible at all) making it 
>> easier
>> for frontend developers to take advantage of it?
> The backens should support all the functions the hardware provides. As
> that type of calibration is not a harware feature, I don't think they
> can do anything to help it. Especially if a feature is needed for all
> devices, it's better to put it in the frontend because that means to
> change one (or some) frontends instead of > 50 backends.
> The only thing I could think about is that the backend could provide
> the .icm file over the SANE API once that file was generated and
> written to the hard disc.

There are a couple of ways this can be handled. But regardless of this,
there are two general areas that need to be addressed:
   - preview in the frontend
   - storing the image data

For the preview, the color correction has to be done in the frontend, 
on two ICC profiles: One for the scanner, and one for the display. LCMS 
also provide a mechanism to profile monitors. And of course, LCMS also
provides the functions to actually apply the profiles.

Once we store the image data, there are (at least) two options: For 
image formats
that support embedded ICC profiles (TIFF and PNG) it is not necessary 
to do
any color correction: The image gets stored as it was read from the 
scanner. In
addition to the raw image data, the ICC profile gets also stored in the 
file. This way, there is no loss in image quality, and an application 
that is ICC
aware can then apply the source profile (scanner profile) and e.g. 
display profile or an output profile (printer) to perform the necessary 
correction. Every time a profile is applied, the image quality suffers 
a bit, so
it's a good idea to limit the number of profile transformations.

For all other image formats (which are not ICC aware), the 
would be applied by the frontend, and the modified image data would be

Karl Heinz