pgmtopbm(1)                                           pgmtopbm(1)

NAME
       pgmtopbm  -  convert  a  portable  graymap into a portable
       bitmap

SYNOPSIS
       pgmtopbm         [-floyd|-fs|-threshold          |-hilbert
       |-dither8|-d8|-cluster3 |-c3|-cluster4|-c4 |-cluster8|-c8]
       [-value val] [-clump size] [pgmfile]

DESCRIPTION
       Reads a portable graymap as input.   Produces  a  portable
       bitmap as output.

       Note  that there is no pbmtopgm converter, because any pgm
       program can read pbm files automagically.

OPTIONS
       The default quantization method is boustrophedonic  Floyd-
       Steinberg error diffusion (-floyd or -fs).  Also available
       are  simple  thresholding  (-threshold);  Bayer's  ordered
       dither (-dither8) with a 16x16 matrix; and three different
       sizes of 45-degree clustered-dot dither (-cluster3, -clus-
       ter4, -cluster8).  A space filling curve halftoning method
       using the Hilbert curve is also available.  (-hilbert);

       Floyd-Steinberg will almost always give the  best  looking
       results;  however,  looking  good  is  not always what you
       want.   For  instance,  thresholding  can  be  used  in  a
       pipeline  with the pnmconvol tool, for tasks like edge and
       peak detection.  And clustered-dot dithering gives a news-
       paper-ish look, a useful special effect.

       The  -value  flag alters the thresholding value for Floyd-
       Steinberg and simple thresholding.  It should  be  a  real
       number  between  0  and 1.  Above 0.5 means darker images;
       below 0.5 means lighter.

       The Hilbert curve method is useful for  processing  images
       before  display  on  devices that do not render individual
       pixels distinctly (like laser  printers).  This  dithering
       method  can give better results than the dithering usually
       done by the laser printers themselves.   The  -clump  flag
       alters the number of pixels in a clump. This is usually an
       integer between 2 and 100 (default 5). Smaller clump sizes
       smear  the  image  less  and  are less grainy, but seem to
       loose some grey scale linearity.  Typically  a  PGM  image
       will  have  to  be  scaled  to fit on a laser printer page
       (2400 x 3000 pixels for an A4  300  dpi  page),  and  then
       dithered  to  a  PBM  image  before  being  converted to a
       postscript file.  A printing pipeline might look something
       like: pnmscale -xysize 2400 3000 image.pgm | pgmtopbm -hil
       | pnmtops -scale 0.25 > image.ps

       All flags can be abbreviated to their shortest unique pre-
       fix.

REFERENCES
       The  only  reference  you  need for this stuff is "Digital
       Halftoning"  by   Robert   Ulichney,   MIT   Press,   ISBN
       0-262-21009-6.

       The Hilbert curve space filling method is taken from "Dig-
       ital Halftoning with Space Filling Curves" by Luiz  Velho,
       Computer  Graphics  Volume  25,  Number  4, proceedings of
       SIGRAPH '91, page 81. ISBN 0-89791-436-8

SEE ALSO
       pbmreduce(1), pgm(5), pbm(5),  pnmconvol(1),  pnmscale(1),
       pnmtops(1)

AUTHOR
       Copyright (C) 1989 by Jef Poskanzer.

                           26 July 1988                         1