Article View: comp.lang.postscript
Article #7781Re: I need a finer setgray
From: Dick Dunn
Date: Wed, 04 Jan 1989 21:02
Date: Wed, 04 Jan 1989 21:02
46 lines
3102 bytes
3102 bytes
> The gray that is closest to white (0.9) is too coarse for what I want
> to do. The box that is being filled in is only about 1/4 inch square.
> At a distance the gray looks fine, but up close (it's for Dept.
> letterhead) the black dots are too big.
This isn't a characteristic of the particular gray level so much as it is a
characteristic of the halftone "screen size" or frequency--the spacing
between the dots (which does not vary with gray level). It's easy to
change just the dot spacing. 300-dpi printers are likely to have a screen
frequency default value of 50-60 (meaning dot spacing is 1/50-1/60").
The setscreen and currentscreen operators manipulate the screen
characteristics. To alter just the frequency and leave the other
characteristics alone--say, to set the screen frequency to 80, you could
use:
currentscreen 3 -1 roll pop 80 3 1 roll setscreen
I suspect the reason that PostScript for 300-dpi printers uses such a
coarse screen is to get a reasonable number of gray levels. If you crank
up the screen size to where there's only a handful of printer dots for each
halftone dot, it seriously limits the number of distinct gray levels.
Then, a picture which has a continuous shading from light to dark in a
region will come out looking like there are bands of gray, because the
steps between adjacent dot sizes aren't fine enough to fool the eye into
seeing a continuum.
Of course, that doesn't matter if you're just interested in one gray level,
as in the parent article. You will probably find that you need to play
with the actual gray value once you change the screen frequency, since the
approximation you get with the new screen may be significantly lighter or
darker. Also, don't try to crank it up too high or you'll run into
problems rendering the tiny dots--they may glop together or disappear.
(I've found write-white printers, like those based on the Ricoh engines, to
have more trouble here than write-black.)
If you have to fill specific straight-edged areas with gray, you may also
find it helpful to fiddle the screen angle (the angle between the rows of
halftone dots and horizontal) so that the screen angle is not aligned (or
nearly aligned) with any of the major edges. If the area is bounded by
horizontal or vertical lines, the default screen angle should be fine. If
it's, say, a diamond, you're likely to want to change it. Screen angle is
another operand/result for setscreen/currentscreen; see your favorite red
book for details.
--
Dick Dunn UUCP: {ncar,nbires}!ico!rcd (303)449-2870
...Worst-case analysis must never begin with "No one would ever want..."
Technical Details
Message-ID:
<13321@ico.ISC.COM>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!lll-lcc!ames!ncar!ico!rcdReferences:
<21801.1989Jan3.12:29:38@hammer.me.toronto.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!lll-lcc!ames!ncar!ico!rcd From: rcd@ico.ISC.COM (Dick Dunn) Newsgroups: comp.lang.postscript Subject: Re: I need a finer setgray Summary: Change the screen frequency Message-ID: <13321@ico.ISC.COM> Date: 4 Jan 89 21:02:10 GMT References: <21801.1989Jan3.12:29:38@hammer.me.toronto.edu> Distribution: na Organization: Interactive Systems Corp, Boulder, CO Lines: 46