Path: 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 > 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..."