[Openicc] Introduction / Gutenprint
Robert L Krawitz
rlk at alum.mit.edu
Mon Apr 11 06:07:23 EST 2005
Date: Sun, 10 Apr 2005 21:57:47 +0200 (CEST)
From: Kai-Uwe Behrmann <ku.b at gmx.de>
Am 10.04.05, 11:38 -0400 schrieb Robert L Krawitz:
> Sounds like an good direction if CUPS will transport some information:
> - sending a custom linearistation profile to Gutenprint
> - request a gamut profile from the CMS layer (kind of an other issue)
>
> So the problem here is how the spooler, driver, and CMS layer talk to
> each other. Right now the spooler basically firewalls the driver from
> everything else, unless you're using something like the GIMP/Cinepaint
> print plugin, which incorporates the driver directly. All of the *x
> spooling systems appear to basically be designed to accept jobs and
> route them to the correct printer, maybe with a little bit of job
> control information on the side from a static PPD file. The JCL is
> quite limited; it allows some number of keyword/value pairs, but not
> anything really extensive like curves or tables.
I dont come with an complete solution here just a listing of outstanding
issues for late colour binding:
o users want to set parameters (in libgutenprintui or a PPD interface )
- the ui should prevent users from changing colour relevant settings or
pop up a dialog to break the "colour managed" status, eighter through
bidirectional comunication or more dangerous by carefully handling
such cases in in the GUI
That's easy to do in the Gutenprint framework, and likewise in the
Print plugin, since options can be made conditional on other options.
Therefore, if the user turns on color management, other options could
be turned off. We already do that kind of thing. It's harder to do
in the CUPS driver since it requires statically analyzing dependencies
between all possible options and figuring out what's legal and what
isn't for the PPD files.
o the CMS layer needs to know about parameters of the "logical
printer", as a set of textual strings for selecting the correct
profile. This allowes on the fly queries of colour managed
settings : select a profile and see the appropriate driver
settings in the gui.
Makes sense.
o users want to easily use/install profiles (including belonging
settings) without beeing asked for administrator rights (target
profiles as part of the job/document is possible in pdf?)
Also makes sense, and this is something that you don't want to be
doing in a spooler (or a driver after a spooler). If a job can embed
a target profile, and if the spooler (or RIP) is willing to pass this
on to the driver, it would be possible.
One partitial solution could be to embed driver settings into the
profile itself. Texts are allowed as tags. And as such settings are
highly specialized, I have no trouble to use even if they can not
been interpreted as by the intended driver. The CMS layer can
easily extract such a tag and proceed to the driver for
interpreatation. So the profile handling would become a one file
thing.
Gutenprint doesn't really care where the settings come from.
Anyway binary blobs outside of image data remain as an issue for the
transportation.
Right, and we need the spooler folks here for that general discussion.
One thing I'd really like to try -- and I recall you did a prototype,
but it wasn't stable on my machine for some reason -- is to put
together a Cinepaint or GIMP plugin that knows about color management.
I could easily put a boolean External Color Management option in
Gutenprint that would turn off all the color correction options and
otherwise set appropriate defaults, but that probably isn't necessary
for a prototype.
My own intuition suggests that if we split the job/option management
part out of the libgutenprintui layer we could put the color
management into libgutenprintui fairly easily. There are a few things
that would have to change -- in particular, the data fetch callout
would have to be intercepted by this layer and delegated back to the
application -- but I suspect it wouldn't be too hard to do this.
--
Robert Krawitz <rlk at alum.mit.edu>
Tall Clubs International -- http://www.tall.org/ or 1-888-IM-TALL-2
Member of the League for Programming Freedom -- mail lpf at uunet.uu.net
Project lead for Gimp Print -- http://gimp-print.sourceforge.net
"Linux doesn't dictate how I work, I dictate how Linux works."
--Eric Crampton
More information about the openicc
mailing list