[sane-devel] Current TODO list
Karl Heinz Kremer
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
>> 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
that support embedded ICC profiles (TIFF and PNG) it is not necessary
any color correction: The image gets stored as it was read from the
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