[Openicc] Print-colormanagement, application->CUPS->gutenprint
Robert L Krawitz
rlk at alum.mit.edu
Wed Apr 20 09:46:01 EST 2005
From: Hal V Engel <hvengel at astound.net>
Date: Tue, 19 Apr 2005 07:49:38 -0700
On Monday 18 April 2005 06:12 pm, Michael Sweet wrote:
> Hal V Engel wrote:
> > ...
> > This is exactly the point that I was trying to get across. This is not
> > about users that don't have exacting color output requirements. I am
> > sure that most of those users are perfectly happy with how this works
> > now.
>
> The currently available open source drivers are capable of excellent
> quality, but configuring the drivers for optimal quality is something
> that many users just aren't up to. On the ease-of-use scale, the HP
> IJS drivers are among the easiest and the most limited from a color
> management standpoint, and Gimp-print/Gutenprint is by far the most
> difficult to use and very advanced from a color management standpoint.
Again from my point of view Gimp-print/Gutenprint does not have
color management. Sorry but that is the way I see it.
Gimp-print/Gutenprint does have good color output with standard ink
sets but is totally off base and requires extensive tweaks and
manually applied custom profiles to get close with 3rd party inks
such as archival inks from MediaStreet.
To be perfectly clear, as Gutenprint project lead, I completely agree
with you. Indeed, the primary reason I joined this list was to work
out how to implement color management within Gutenprint. It was a
goal of ours to implement color management in 5.0, but we didn't make
it, and so 5.0 will go out without color management. However, color
management will be the driving functionality behind 5.2.
Between this list and the Colorsync list, the one thing that has
become abundantly clear is that a lot of people do color management
very badly. I'm *not* an expert in that area, and have no desire to
repeat other people's mistakes in Gutenprint, so I want to work with
others here to do the right thing, and also to help drive the right
architecture for color management in the free source printing chain.
I've seen enough prototypes that people have done to believe that the
Gutenprint core platform has (or can easily have) the necessary
capabilities to implement color management well. Some of these
solutions use very arcane technology, but people have achieved
excellent results. The challenge is getting from those prototypes to
a production-quality solution. It certainly wouldn't be too hard to
put LCMS lookup in the GIMP/Cinepaint front end (indeed, the Cinepaint
folks have done so), but that solution doesn't scale. Unfortunately,
the back end is somewhat inaccessible when driven by today's spoolers,
and that's a problem that needs to be solved.
I don't want the above to be taken in the wrong way as there are
many that don't understand what color management means. One major
example is Microsoft which claims that Windows supports color
management. They even have places where the user can install ICC
profiles for the display and printers. But if you try to work with
this stuff you find out that it simply does not work the way it
should. In most cases users figure this out only after working
very hard trying to make it work. Many give up out of frustration
having never gotten it to work thinking that this color management
stuff is BS. Eventually some users figure out that what Microsoft
is calling CM is really a bunch of junk that was thrown together in
a hurry by someone in Redmond who had no idea what he was doing and
that to do CM on Windows you must do everything manually. For
Windows users there are a few applications that are CM aware and
that allow the user to do what is needed to implement a manual work
flow (Photoshop, Vuescan, Silverfast AI). There are now rumors
that they are doing a major rewrite of the CM systems for Longhorn.
Could this be because they messed up bad the first time?
Again, I don't want to repeat those kinds of mistakes with
Gutenprint. My goal with Gutenprint is for it to be the best driver
for inkjet printers, bar none. That's a tall order, and getting the
color management right is critical.
So how might this be done? This is just one possibility that
perhaps could be kicked around some. Visualize the gimp-print
plug-in The GIMP uses. In that plug-in you can create a "logical
printer" that ".. can be used to name a collection of settings you
wish to remember for future use." Now add a few new fields such as
ICC printer profile, rendering intent, black point compensation and
the ability to make the driver always handle the data the same way
and the hooks to pass the CM information through to CUPS and you
are most of the way there. In fact this is all that is needed for
single user workstations assuming that we are only concerned with
printed output from apps that use the gimp-print plug-in.
Now we're talking. The Gutenprint core has the capability to accept
files as parameters, and there are other data types as well. It can
handle arbitrary parameters with dependencies, and these dependencies
can be dynamic if need be.
BTW, there's a UI layer on top of Gutenprint called gutenprintui2 (for
GTK2). It's somewhat generalized. Currently the interface is rather
ugly, but if people think it's the right thing (and a good UI person
volunteers), we can beef it up.
The other thing we need to do is fix up the Postscript family driver
(back end). It's currently buggy and cannot use all of the parameters
in a PPD file.
For multi user systems you would add the following. Give
administrators the ability to lock down the settings for a "logical
printer" and make this available to other users on the system.
Then add the ability to make the print dialog that uses these
"logical printers" the default system print GUI. Assuming that
this correctly interfaces to CUPS to handle CM you have a solution
to the printing work flow problem that provides for both expert and
normal users.
Till Kamppeter of Mandriva asked me to implement a system-wide
printrc. I wasn't too keen on it, but it's certainly something we
could consider for 5.2 (we could probably even do it in a 5.0 point
release because it wouldn't require an interface change).
Adding the additional fields to the plug-in would be easy and I
suspect that setting it up to pass the addition arguments to CUPS
would not be very difficult. In fact I would be willing to bet
dollars to donuts that Robert or one of his people could have this
done in short order if they decided to. But putting together the
multi user administrative stuff could be a real challenge since
there are likely all kinds of issues that would need to be
resolved.
My biggest constraint right now is time. My biggest goal right now is
getting Gutenprint 5.0 out. We're about to do beta 4, and then there
will be some bug fixes, testing, documentation, and translation before
we can release it. Then we can start really working on 5.1 (which
will become 5.2).
--
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