Provided by: netpbm_10.0-11.1_i386 bug

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.  Any program  that  uses  the
       Netpbm libraries to read PGM files, including virtually all programs in
       the Netpbm package, will read a PBM file automatically as if it were  a
       PGM file.

       If you are using a less intelligent program that expects PGM input, use
       pnmdepth to convert the PBM file to PGM.   As  long  as  the  depth  is
       greater  than  1,  pnmdepth  will  generate PGM.  This less intelligent
       program quite probably is also not  intelligent  enough  to  deal  with
       general maxvals, so you should specify a depth of 255.

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,  -cluster4,  -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 newspaper-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 prefix.

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  "Digital
       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                      pgmtopbm(1)