Re: Update to the print plugin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[sigh...  I wish I wasn't such a busy camper these days!]

Robert L Krawitz wrote:
> ...
>    1) print.c is a real mess right now.  All the settings-handling
>       code is ad hoc and very ugly, and there's a lot of knowledge
>       scattered about the code.
> 
> Not directly necessary to fix for release (unless someone wants to
> :-)).  However, cleaning this up may make fixing the save/load code
> easier to fix.

Actually, I've completely rewritten the GUI code so it can use the PPD
stuff from CUPS.  My efforts are not yet quite finished, but I'll let
everyone know once I have something to play with.

>    2) As noted, the settings save/load code isn't perfect.  It's OK
>       for beta (or development), but not really for a release.
> 
> Should be fixed for release.

Doesn't look like it'll be too hard to fix.

>    3) Printing at 360 dpi (on the Stylus Photo) yields slightly
>       reddish grays.  I'm not quite sure what to make of it.  360
> ...
> 
> I don't have a strong opinion on this.  I consider 360 dpi mode to
> be purely for proofing and I'm not overly concerned with details,
> but on the other hand if people find the color cast too
> objectionable it should be fixed.

I have some new color correction code that'll be going into the "real"
3.0 release :) that should take care of that.

>    4) The K->CMY code is distinctly tuned for the Stylus Photo EX
>       right now.  Sorry, I don't have another color printer to play
>       with.
> 
> This should be addressed, but it won't be unless we get testers.

GCR and UCR can be a pain to get right.  Here's a possible solution
based on the CMYK generation code we're currently using in CUPS:

    c = 1 - r
    m = 1 - g
    y = 1 - b
    k = min(c,m,y)
    w = max(c,m,y)
    k = GCR(k * k / w)

    if (k < 1)
    {
      c = (c - k) / (1 - k)
      m = (m - k) / (1 - k)
      y = (y - k) / (1 - k)
    }
    else
      c = m = y = 0

This reduces the amount of black based on the saturation of
the color (more saturated means less black), and uses a GCR
function/lut to control the final amount of black.  A simple
implementation might just use a cutoff level and ramp the
values starting at the cut-off point, e.g.:

    int GCR[256];
    int GCRlevel;

    for (i = 0; i < GCRlevel; i ++)
      GCR[i] = 0;

    for (; i < 256; i ++)
      GCR[i] = 1 + (i - GCRlevel) * 254 / (255 - GCRlevel);

We're looking into doing something similar for CUPS 1.1 that will
also provide a gamma (power) value for the GCR LUT.

>    5) The Stylus Photo printing has become very slow for some reason
>       (at least at 720 dpi).  On the other hand, the
>       microweave-induced banding has entirely vanished, yielding
>       much (arguably spectacularly) better quality.  I'm not
>       positive exactly what did this, but it's not at the top of my
>       list of priorities to "fix". If it takes 30 minutes to print a
>       really high quality full-page print that doesn't seem so bad.
> 
> Not to be fixed, since this "problem" improves output quality
> substantially in the highest quality output mode.

30 minutes is way too long.  I'm still wrangling with EPSON over the
softweave algorithm; hopefully we'll be able to include the code in
a future print plug-in/CUPS driver, which lowers print times 
significantly.

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products                  mike@xxxxxxxxxx
Printing Software for UNIX                       http://www.easysw.com


[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux