🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.postscript
Article #8477

Re: Adding noice to grayscales

#8477
From: Geof Cooper
Date: Tue, 23 May 1989 20:03
44 lines
2021 bytes
In article <861@umecs.cs.umu.se> christer@zeus.UUCP (Christer Ericson) writes:
>I would like to add some random noice to the grayscale when I'm filling an
>area. I have tried to do something like this (simplified example);
>
>    60 45 { add rand 3 mod add 1 sub 3.0 div } setscreen
>
>but obviously the current screen is only accessed once before the filling and
>not during the operation (as I would want it to work).

No simple way.  PostScript uses an imaging model that calls for a
particular type of half-tone screen.  It is not willing to half-tone
using other digital techniques, such as convolution with random
screens, etc..

As for adding random noise to the image, the only way that I can think
of to do this is to generate the image, then superimpose a noise
function on top of it.  The noise function is just a "repeat" loop
that turns a bit on or off at a random location (hopefully within the
image).

Here is some non-debugged code that illustrates the technique.
I would expect this to take a LONG time to work for any real amount
of noise.

% SizeX and SizeY are the dimensions of the image that has
% been imaged at the current origin.
% The current origin should be pixel aligned using:
%   0 0 moveto currentpoint transform round exch round itransform translate

/xpix 1 0 idtransform dup mul exch dup mul add sqrt def
/ypix 0 1 idtransform dup mul exch dup mul add sqrt def
/SizeX SizeX xpix div round def
/SizeY SizeY ypix div round def
xpix ypix scale

/sr { rand 2.15e9 div } bind def

1000
{
    sr SizeX mul round sr SizeY mul round moveto
    rand 16#4000000 ge {0}{1}ifelse setgray
    0 1 rlineto 1 0 rlineto 0 -1 rlineto fill
}
bind repeat
Technical Details
Message-ID: <3827@imagen.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!sun-barr!sun!imagen!daemon

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!sun-barr!sun!imagen!daemon
From: geof@apolling (Geof Cooper)
Newsgroups: comp.lang.postscript
Subject: Re: Adding noice to grayscales
Message-ID: <3827@imagen.UUCP>
Date: 23 May 89 20:03:19 GMT
Sender: daemon@imagen.UUCP
Lines: 44