[Openicc] Print-colormanagement, application->CUPS->gutenprint

Michael Sweet mike at easysw.com
Tue Apr 19 05:06:43 EST 2005


Hal V Engel wrote:
> ...
> I am confused.  I just looked at the ppd file for my printer and the
> only colorspace listed is *DefaultColorSpace: RGB.  This appears to
> be a generic (non-device specific) color space.  Are you telling me
> that if I change this to point to a custom printer profile that CUPS
> (or what?) will do the color space conversion from the document color
> space (using the embedded ICC profile - for example AdobeRGB 1998) to
> this custom ICC profile before sending it to the printer?   Or is
> this something that is going to be available in an unreleased version
> of CUPS?

OK, there are three separate issues here, and I'll break them up.

1. DefaultColorSpace; this keyword specifies the device's default
    PostScript colorspace that is used with the setcolor operator.

    This has no relation to the document/source colorspace and is
    only of academic interest if you are hand-creating PostScript
    code and don't care about portability or unreliable behavior.

    In short, ignore this attribute completely, nothing to see
    here! :)

2. ColorModel + DefaultColorModel; this UI keyword specifies the
    desired color model for the job.  The Adobe-defined option
    keywords are Gray (grayscale), RGB (RGB color), and CMYK (CMYK
    color), and they generally tell the printer whether to print in
    color.

    A typical CUPS driver will use the ColorModel keyword to define
    the various colorspaces the driver supports, and use PostScript
    code to set the cupsColorSpace, cupsColorOrder, and
    cupsBitsPerColor attributes in the PostScript page device
    dictionary, which in turn tells the RIP what kind of color
    data to produce.

3. cupsICCProfile/cupsProfile; these keywords specify a mapping
    from the PCS to the device/destination colorspace.  In the
    case of cupsICCProfile, the PCS is typically CIE Lab, while
    cupsProfile uses CMYK as the PCS.

    cupsProfile has been supported since CUPS 1.0.

    cupsICCProfile is supported in CUPS 1.1.x on MacOS X 10.3 and
    higher and will be supported later this year in CUPS 1.2 and
    ESP Ghostscript 8.15.x (x>1) using (surprise surprise) LCMS.

In summary, DefaultColorSpace is not applicable, but instead the
ColorModel/DefaultColorModel stuff is used for a CUPS driver to
determine the device/destination colorspace.  The conversion from
document/source colorspace to destination colorspace is further
governed by optional color profiles.

> ...
> other than paper size settings) requires a different profile to be
> totally correct.  In addition, each printer of the same model 
> requires different profiles since these will behave differently
> because of manufacturing variations.

Keep in mind that MOST people will never create their own ICC
profiles and are 100% OK with using profiles created by the
developer, so our focus in CUPS is to support simple profile
selection with support for custom profiles if the user wants to
create and use them.

 > ...
> I need a good way to manage these in conjunction with the related
> printer settings that go with each profile.   This needs to be simple
> to do for those who are responsible for creating and installing
> profiles but transparent to regular users.
> ...

Our current design is to support user-installed profiles in
addition to the usual profile auto-selection based on the current
job options.  How the user installs the profiles is beyond the
scope of CUPS, however the design makes it as simple as an admin
user creating a symlink or a nice GUI doing this for the user.

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Document Software          http://www.easysw.com



More information about the openicc mailing list