Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!lll-winken!elroy.jpl.nasa.gov!ncar!gatech!bloom-beacon!eru!hagbard!sunic!mcsun!ukc!cam-cl!news From: cet1@cl.cam.ac.uk (C.E. Thompson) Newsgroups: comp.lang.postscript Subject: Re: Negative needed Message-ID: <1991Apr18.224028.21519@cl.cam.ac.uk> Date: 18 Apr 91 22:40:28 GMT References: <1991Apr11.124626.12325@pbs.org> <1947@chinacat.Unicom.COM> <1991Apr17.141806.20838@shell.shell.com> Reply-To: cet1@cl.cam.ac.uk (C.E. Thompson) Organization: U of Cambridge Comp Lab, UK Lines: 50 In article <1991Apr17.141806.20838@shell.shell.com> lee@leo (Bill Lee) writes: > >From the red book (rev.1) pg 82-83: > > "The transfer function may also be redefined to produce specific > effects. For example, the transfer function > {1 exch sub} > will invert the output image; this is useful for producing > photographic negatives...." > >This seems like a reasonable way to do the job: searching through a PS >file (that could be quite large) for all occurences of a setgray command >is not (IMHO) reasonable. > and there have been other postings along the same lines. It may be worth quoting the substantially more subdued version in the new LRM (p.309): In addition to their intended use for gamma correction, transfer functions can be used to produce a variety of special, device-dependant effects. For example, on a monochrome device, the transfer function {1 exch sub} inverts the output colors, producing a negative rendition of the page. In general, this method does not work for color devices; inversion can be more complicated than merely inverting each of the components. Because the effects produced are device dependant, transfer functions should not be altered by a page description that is intended to be device independant. Adobe presumably realise by now that it was a bad mistake to recommend using a device-dependant part of the graphics state to achieve device- independant effects (in particular the white/black inversion of images: of course this is made redudant by the /Decode entry in the new level 2 form of "image", but in level 1 there was really no way to do it *except* fiddling with transfer functions). Read the paragraph after the one quoted above to see the unclean spec in CMYK devices necessitated by existing practice. By the way, neither the old nor the new LRM guarantees that the default transfer function is the identity function, even for a monochrome printer. The more paranoid among you will therefore prefer { 1 exch sub null exec } dup 3 currenttransfer put settransfer or the like. In all cases I know about, though, the default is the identity function --- any known exceptions? Chris Thompson JANET: cet1@uk.ac.cam.phx Internet: cet1%phx.cam.ac.uk@nsfnet-relay.ac.uk