diff options
Diffstat (limited to 'vms/PBMplus.hlp')
-rw-r--r-- | vms/PBMplus.hlp | 6814 |
1 files changed, 0 insertions, 6814 deletions
diff --git a/vms/PBMplus.hlp b/vms/PBMplus.hlp deleted file mode 100644 index 52ba0f33..00000000 --- a/vms/PBMplus.hlp +++ /dev/null @@ -1,6814 +0,0 @@ -1 HELP - See PBMplus and OVERVIEW. - -1 OVERVIEW - Enhanced portable bitmap toolkit. The PBMPLUS toolkit allows - conversions between image files of different format. By means of - using common intermediate formats, only 2 * N conversion filters - are required to support N distinct formats, instead of the N**2 - which would be required to convert directly between any one format - and any other. The package also includes simple tools for - manipulating portable bitmaps. - - The package consists of four upwardly compatible sections: - - pbm Supports monochrome bitmaps (1 bit per pixel). - - pgm Supports grayscale images. Reads either PBM or PGM - formats and writes PGM format. - - ppm Supports full-color images. Reads either PBM, PGM, or PPM - formats, writes PPM format. - - pnm Supports content-independent manipulations on any of the - three formats listed above, as well as external formats - having multiple types. Reads either PBM, PGM, or PPM - formats, and generally writes the same type as it read - (whenever a PNM tool makes an exception and ``promotes'' a - file to a higher format, it informs the user). - - See PBMplus for more infomation. - -1 PBMplus - Enhanced portable bitmap toolkit. The PBMPLUS toolkit allows - conversions between image files of different format. By means of - using common intermediate formats, only 2 * N conversion filters - are required to support N distinct formats, instead of the N**2 - which would be required to convert directly between any one format - and any other. The package also includes simple tools for - manipulating portable bitmaps. - - The package consists of four upwardly compatible sections: - - pbm Supports monochrome bitmaps (1 bit per pixel). - - pgm Supports grayscale images. Reads either PBM or PGM - formats and writes PGM format. - - ppm Supports full-color images. Reads either PBM, PGM, or PPM - formats, writes PPM format. - - pnm Supports content-independent manipulations on any of the - three formats listed above, as well as external formats - having multiple types. Reads either PBM, PGM, or PPM - formats, and generally writes the same type as it read - (whenever a PNM tool makes an exception and ``promotes'' a - file to a higher format, it informs the user). - -2 Description_of_Contents - A brief, one-line description of each of the individual - programs in the PBMplus package. They are sorted by general type. - -3 pbm - atktopbm convert Andrew Toolkit raster object to portable bitmap - brushtopbm convert Xerox doodle brushes to portable bitmap - cmuwmtopbm convert CMU window manager format to portable bitmap - g3topbm convert Group 3 FAX to portable bitmap - icontopbm convert Sun icon to portable bitmap - gemtopbm convert GEM .img format to portable bitmap - macptopbm convert MacPaint to portable bitmap - mgrtopbm convert MGR format to portable bitmap - pktopbm convert packed (PK) format font into portable bitmap(s) - pbmmerge merge wrapper routine - pbmto10x convert portable bitmap to Gemini 10x printer graphics - pbmto4425 convert portable bitmap to AT&T 4425 terminal - pbmtoascii convert portable bitmap to ASCII graphic form - pbmtoatk convert portable bitmap to Andrew Toolkit raster object - pbmtobbnbg convert portable bitmap to BBN BitGraph graphics - pbmtocmuwm convert portable bitmap to CMU window manager format - pbmtoepson convert portable bitmap to Epson printer graphics - pbmtog3 convert portable bitmap to Group 3 FAX - pbmtogem convert portable bitmap into GEM .img file - pbmtogo convert portable bitmap to GraphOn graphics - pbmtoicon convert portable bitmap to Sun icon - pbmtolj convert portable bitmap to HP LaserJet graphics - pbmtoln03 convert portable bitmap to DEC LN03+ Laserprinter - pbmtolps convert portable bitmap to PostScript - pbmtomacp convert portable bitmap to MacPaint - pbmtomgr convert portable bitmap to MGR format - pbmtopgm convert portable bitmap to portable graymap by ave. areas - pbmtopi3 convert portable bitmap to Atari Degas .pi3 - pbmtopk convert portable bitmap into a packed (PK) format font - pbmtoplot convert portable bitmap into Unix plot(5) file - pbmtoptx convert portable bitmap to Printronix graphics - pbmtoxbm convert portable bitmap to X11 bitmap - pbmtox10bm convert portable bitmap to X10 bitmap - pbmtoybm convert portable bitmap into Bennet Yee "face" file - pbmtozinc convert portable bitmap to Zinc Interface Library icon - pbmtoepsi convert portable bitmap into an encapsulated PostScript - pi3topbm convert Atari Degas .pi3 to portable bitmap - xbmtopbm convert X10 or X11 bitmap to portable bitmap - ybmtopbm convert Bennet Yee "face" file into portable bitmap - - pbmclean flip isolated pixels in portable bitmap - pbmlife apply Conway's rules of Life to a portable bitmap - pbmmake create a blank bitmap of a specified size and color - pbmmask create a mask bitmap from a regular bitmap - pbmreduce reduce a portable bitmap N times, using Floyd-Steinberg - pbmspcale enlarge a portable bitmap with edge smoothing - pbmtext render text into a bitmap - pbmupc create a Universal Product Code bitmap - -3 pgm - asciitopgm convert ASCII graphics into a portable graymap - fstopgm convert Usenix FaceSaver format to portable graymap - hipstopgm convert HIPS format to portable graymap - lispmtopgm convert a Lisp Machine bitmap file into pgm format - bioradtopgm convert a Biorad confocal file into a portable graymap - psidtopgm convert PostScript "image" data to portable graymap - rawtopgm convert raw grayscale bytes to portable graymap - spottopgm convert SPOT satellite images to Portable Greymap format - pgmtofs convert portable graymap to Usenix FaceSaver format - pgmtolispm convert a portable graymap into Lisp Machine format - pgmtopbm convert portable graymap to portable bitmap - - pgmbentley Bentleyize a portable graymap - pgmcrater create cratered terrain by fractal forgery - pgmedge edge-detect a portable graymap - pgmenhance edge-enhance a portable graymap - pgmhist print a histogram of the values in a portable graymap - pgmkernel generate a convolution kernel - pgmmerge merge wrapper routine - pgmnoise create a graymap made up of white noise - pgmnorm normalize contrast in a portable graymap - pgmoil turn a portable graymap into an oil painting - pgmramp generate a grayscale ramp - pgmtexture calculate textural features on a portable graymap - -3 ppm - bmptoppm convert BMP file to portable pixmap - gouldtoppm convert Gould scanner file to portable pixmap - ilbmtoppm convert IFF ILBM to portable pixmap - imgtoppm convert Img-whatnot to portable pixmap - mtvtoppm convert MTV ray-tracer output to portable pixmap - pcxtoppm convert PC Paintbrush format to portable pixmap - pgmtoppm colorize a portable graymap into a portable pixmap - pi1toppm convert Atari Degas .pi1 to portable pixmap - picttoppm convert Macintosh PICT to portable pixmap - pjtoppm convert HP PaintJet file to portable pixmap - ppmtoacad convert portable pixmap to AutoCAD database or slide - ppmtobmp convert portable pixmap to BMP file - ppmtogif convert portable pixmap to GIF - ppmtoicr convert portable pixmap to NCSA ICR graphics - ppmtoilbm convert portable pixmap to IFF ILBM - ppmtomitsu convert a portable pixmap to a Mitsubishi S340-10 file - ppmtomap extract all colors from a portable pixmap - ppmtopcx convert portable pixmap to PC Paintbrush format - ppmtopgm convert portable pixmap to portable graymap - ppmtopi1 convert portable pixmap to Atari Degas .pi1 - ppmtopict convert portable pixmap to Macintosh PICT - ppmtopj convert portable pixmap to HP PaintJet file - ppmtopjxl convert portable pixmap to HP PaintJet XL PCL file - ppmtopuzz convert portable pixmap to X11 "puzzle" file - ppmtorgb3 separate a portable pixmap to three portable graymaps - ppmtosixel convert portable pixmap to DEC sixel format - ppmtotga convert portable pixmap to TrueVision Targa file - ppmtouil convert portable pixmap to Motif UIL icon file - ppmtoxpm convert portable pixmap to XPM format - ppmtoyuv convert portable pixmap to Abekas YUV format - qrttoppm convert QRT ray-tracer output to portable pixmap - rawtoppm convert raw RGB bytes to portable pixmap - rgb3toppm combine three portable graymaps to one portable pixmap - sldtoppm convert an AutoCAD slide file into a portable pixmap - spctoppm convert Atari compressed Spectrum to portable pixmap - sputoppm convert Atari uncompressed Spectrum to portable pixmap - tgatoppm convert TrueVision Targa file to portable pixmap - ximtoppm convert Xim to portable pixmap - xpmtoppm convert XPM format to portable pixmap - xvminitoppm convert a XV "thumbnail" picture to PPM - yuvtoppm convert Abekas YUV format to portable pixmap - - ppm3d convert 2 portable pixmap to a red/blue 3d glasses pixmap - ppmbrighten change images Saturation and Value from an HSV map - ppmchange change pixels of one color to another in a portable pixmap - ppmdim dim a portable pixmap down to total blackness - ppmdist simple grayscale for machine generated, color images - ppmdither ordered dither for color images - ppmflash brighten a picture up to complete white-out - ppmforge fractal forgeries of clouds, planets, and starry skies - ppmhist print a histogram of a portable pixmap - ppmmake create a pixmap of a specified size and color - ppmmix blend together two portable pixmaps - ppmpat create a pretty pixmap - ppmquant quantize colors down to a specified number - ppmqvga 8 plane quantization - ppmrelief run a Laplacian Relief filter on a portable pixmap - ppmshift shift lines of a portable pixmap left or right by a - random amount - ppmspread displace a portable pixmap's pixels by a random amount - -3 pnm - pnmtoddif convert portable anymap to DDIF format - pnmtofits convert a portable anymap into FITS format - pnmtops convert portable anymap to PostScript - pnmtorast convert portable anymap to Sun raster file - pnmtotiff convert portable anymap to TIFF file - pnmtoxwd convert portable anymap to X11 window dump - fitstopnm convert a FITS file into a portable anymap - rasttopnm convert Sun raster file to portable anymap - tifftopnm convert TIFF file to portable anymap - xwdtopnm convert X10 or X11 window dump to portable anymap - pnmtosir convert a portable anymap into a Solitaire format - sirtopnm convert a Solitaire file into a portable anymap - zeisstopnm convert a Zeiss confocal file into a portable anymap - - pnmalias antialias a portable anyumap. - pnmarith perform arithmetic on two portable anymaps - pnmcat concatenate portable anymaps - pnmcomp composite two portable anymap files together - pnmconvol general MxN convolution on a portable anymap - pnmcrop crop all like-colored borders off a portable anymap - pnmcut select a rectangular region from a portable anymap - pnmdepth change the maxval in a portable anymap - pnmenlarge enlarge a portable anymap N times - pnmfile describe a portable anymap - pnmflip perform one or more flip operations on a portable anymap - pnmgamma perform gamma correction on a portable anymap - pnmhistmap draw a histogram for a PGM or PPM file - pnminvert invert a portable anymap - pnmnlfilt non-linear filters: smooth, alpha trim mean, - optimal estimation smoothing, edge enhancement - pnmnoraw force a portable anymap into ASCII format - pnmpad add borders to portable anymap - pnmpaste paste a rectangle into a portable anymap - pnmrotate rotate a portable anymap - pnmscale scale a portable anymap - pnmshear shear a portable anymap - pnmtile replicate a portable anymap into a specified size - -2 See_Also - There are a number of related image-manipulation tools: - - IM Raster Toolkit - A portable and efficient format toolkit. The format supports - pixels of arbitrary channels, components, and bit precisions, - while allowing compression and machine byte-order independence. - Support for image manipulation, digital halftoning, and format - conversion. Previously distributed on tape c/o the University of - Waterloo (an ftp version is to appear later). Author: Alan Paeth - (awpaeth@watcgl.uwaterloo.ca). - - Utah RLE Toolkit - Conversion and manipulation package, similar to PBMPLUS. - Available via ftp as cs.utah.edu: pub/toolkit-2.0.tar.Z and - ucsd.edu: graphics/utah-raster-toolkit.tar.Z. - - Fuzzy Pixmap Manipulation - Conversion and manipulation package, similar to PBMPLUS. - Version 1.0 available via ftp as nl.cs.cmu.edu: - /usr/mlm/ftp/fbm.tar.Z, uunet.uu.net: pub/fbm.tar.Z, and - ucsd.edu: graphics/fbm.tar.Z. Author: Michael Mauldin - (mlm@nl.cs.cmu.edu). - - Img Software Set - Reads and writes its own image format, displaying results on - an X11 screen, and does some image manipulations. Version 1.3 is - available via ftp as ftp.x.org:contrib/img_1.3.tar.Z, and - venera.isi.edu:pub/img_1.3.tar.Z, along with a large collection of - color images. Author: Paul Raveling (raveling@venera.isi.edu). - - Xim - Reads and writes its own image format, displays on an X11 - screen, and does some image manipulations. Available in your - nearest X11R4 source tree as it contrib/clients/xim. A more - recent version is available via ftp from video.mit.edu. It uses - X11R4 and the OSF/Motif toolkit to provide basic interactive image - manipulation and reads/writes GIF, xwd, xbm, tiff, rle, xim, and - other formats. Author: Philip R. Thompson. - - xloadimage - Reads in images in various formats and displays them on an X11 - screen. Available via ftp as ftp.x.org:contrib/xloadimage*, and - in your nearest comp.sources.x archive. Author: Jim Frost - (madd@std.com). - - TIFF Software - Nice portable library for reading and writing TIFF files, plus - a few tools for manipulating them and reading other formats. - Available via ftp as sgi.com:pub/graphics/*.tar.Z or - uunet.uu.net:graphics/tiff.tar.Z. Author: Sam Leffler (sam@sgi.com). - - ALV - A Sun-specific image toolkit. Version 2.0.6 posted to - comp.sources.sun on 11 December 1989. Also available via email to - alv-users-request@cs.bris.ac.uk. - - popi - An image manipulation language. Version 2.1 posted to - comp.sources.misc on 12 December 1989. - - ImageMagick - X11 package for display and interactive manipulation of - images. Uses its own format (MIFF), and includes some converters. - Available via ftp as ftp.x.org:contrib/ImageMagick.tar.Z. - - Khoros - Huge (~100 meg) graphical development environment based on - X11R4. Components include a visual programming language, code - generators for extending the visual language and adding new - application packages to the system, an interactive user interface - editor, an interactive image display package, an extensive library - of image and signal processing routines, and 2D/3D plotting - packages. Available via ftp as pprg.unm.edu:pub/khoros/*. - - JPEG package - JPEG is a a standardized compression method for full-color and - gray-scale images of "real-world" scenes; this experimental - package includes programs to compress gif and ppm format files to - JPEG format ( cjpeg(1L)), and to decompress them (djpeg(1L)). - Available by ftp as uunet.uu.net:graphics/jpeg/jpegsrc.v1.tar.Z. - - libpbm(3L), libpgm(3L), libpnm(3L), libppm(3L), pbm(5L), - pgm(5L), pnm(5L), ppm(5L), rasterfile(1) - -2 Author - Distribution of 1 December 1991. Copyright 1989, 1991 by Jef - Poskanzer. - - Feedback and questions are welcome. Please send them to: - - jef@well.sf.ca.us - apple!well!jef - - When sending bug reports, always include the output from - running any pbmplus program with the -version flag, including - descriptions of the type of system you are on, the compiler you - use, and whether you are using Makefiles or Imakefiles. - - When suggesting new formats or features, please include - whatever documentation you have, and a uuencoded sample. The - response time will depend upon my schedule and the complexity of - the task; if you need it right away, or it is a complicated job, - you might consider paying me. - - The Usenet newsgroup alt.graphics.pixutils is a forum for - discussion of image conversion and editing packages. Posting - queries there may be better than mailing them to me, since it - allows other people to help provide answers. - - Permission to use, copy, modify, and distribute this software - and its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both that copyright notice and this permission - notice appear in supporting documentation. This software is - provided "as is" without express or implied warranty. Thus, you - may do what you want with this software. Build it into your - package, steal code from it, whatever. Just be sure to let people - know where it came from. - -1 asciitopgm - asciitopgm - convert ASCII graphics into a portable graymap - -2 Synopis - asciitopgm [-d divisor] height width [asciifile] - -2 Description - Reads ASCII data as input. Produces a portable graymap with - pixel values which are an approximation of the "brightness" of the - ASCII characters, assuming black-on-white printing. In other - words, a capital M is very dark, a period is ver light, and a - space is white. Input lines which are fewer than width characters - are automatically padded with spaces. - - The divisor argument is a floating-point number by which the - output pixels are divided; the default value is 1.0. This can be - used to adjust the brightness of the graymap: for example, if the - image is too dim, reduce the divisor. - - In keeping with (I believe) Fortran line-printer conventions, - input lines beginning with a + (plus) character are assumed to - "overstrike" the previous line, allowing a larger range of gray - values. - - This tool contradicts the message in the pbmtoascii manual: - "Note that there is no asciitopbm tool - this transformation is - one-way." - -2 Bugs - The table of ASCII-to-grey values is subject to - interpretation, and, of course, depends on the typeface intended - for the input. - -2 See_Also - pbmtoascii(1), pgm(5) - -2 Author - Wilson H. Bent. Jr. (whb@usc.edu) - -1 atktopbm - atktopbm - convert Andrew Toolkit raster object to portable - bitmap - -2 Synopsis - atktopbm [atkfile] - -2 Description - Reads an Andrew Toolkit raster object as input. Produces a - portable bitmap as output. - -2 See_Also - pbmtoatk, pbm - -2 Author - Copyright (C) 1991 by Bill Janssen. - -1 brushtopbm - brushtopbm - convert a doodle brush file into a portable - bitmap - -2 Synopsis - brushtopbm [brushfile] - -2 Description - Reads a Xerox doodle brush file as input. Produces a port- - able bitmap as output. - - Note that there is currently no pbmtobrush tool. - -2 See_Also - pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 cmuwmtopbm - cmuwmtopbm - convert a CMU window manager bitmap into a - portable bitmap - -2 Synopsis - cmuwmtopbm [cmuwmfile] - -2 Description - Reads a CMU window manager bitmap as input. Produces a - portable bitmap as output. - -2 See_Also - pbmtocmuwm, pbm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 g3topbm - g3topbm - convert a Group 3 fax file into a portable bitmap - -2 Synopsis - g3topbm [-kludge] [-reversebits] [-stretch] [g3file] - -2 Description - Reads a Group 3 fax file as input. Produces a portable bit- - map as output. - -2 Options - -kludge - Tells g3topbm to ignore the first few lines of the - file; sometimes fax files have some junk at the begin- - ning. - - -reversebits - Tells g3topbm to interpret bits least-significant - first, instead of the default most-significant first. - Apparently some fax modems do it one way and others do - it the other way. If you get a whole bunch of "bad - code word" messages, try using this flag. - - -stretch - Tells g3topbm to stretch the image vertically by dupli- - cating each row. This is for the low-quality transmis- - sion mode. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 References - The standard for Group 3 fax is defined in CCITT Recommenda- - tion T.4. - -2 Bugs - Probably. - -2 See_Also - pbmtog3, pbm - -2 Author - Copyright (C) 1989 by Paul Haeberli <paul@manray.sgi.com>. - -1 icontopbm - icontopbm - convert a Sun icon into a portable bitmap - -2 Synopsis - icontopbm [iconfile] - -2 Description - Reads a Sun icon as input. Produces a portable bitmap as - output. - -2 See_Also - pbmtoicon, pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 gemtopbm - gemtopbm - convert a GEM .img file into a portable bitmap - -2 Synopsis - gemtopbm [-d] gemfile - -2 Description - Reads a GEM .img file as input. Produces a portable bitmap - as output. - -2 Options - -d Produce output describing the contents of the .img - file. - -2 Bugs - Does not support file containing more than one plane. Can't - read from standard input. - -2 See_Also - pbmtogem, pbm - -2 Author - Copyright (C) 1988 Diomidis D. Spinellis (dds@cc.ic.ac.uk). - -1 macptopbm - macptopbm - convert a MacPaint file into a portable bitmap - -2 Synopsis - macptopbm [-extraskip N] [macpfile] - -2 Description - Reads a MacPaint file as input. Produces a portable bitmap - as output. - -2 Options - -extraskip - This flag is to get around a problem with some methods - of transferring files from the Mac world to the Unix - world. Most of these methods leave the Mac files - alone, but a few of them add the "finderinfo" data onto - the front of the Unix file. This means an extra 128 - bytes to skip over when reading the file. The symptom - to watch for is that the resulting PBM file looks - shifted to one side. If you get this, try -extraskip - 128, and if that still doesn't look right try another - value. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - picttoppm, pbmtomacp, pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. The MacPaint-reading - code is copyright (c) 1987 by Patrick J. Naughton - (naughton@wind.sun.com). - -1 mgrtopbm - mgrtopbm - convert a MGR bitmap into a portable bitmap - -2 Synopsis - mgrtopbm [mgrfile] - -2 Description - Reads a MGR bitmap as input. Produces a portable bitmap as - output. - -2 See_Also - pbmtomgr, pbm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pbmclean - pbmclean - flip isolated pixels in portable bitmap - -2 Synopsis - pbmclean [-connect] [pbmfile] - -2 Description - Reads a portable bitmap as input. Outputs a portable bitmap - with every pixel which has less than connect identical - neighbours inverted. Pbmclean can be used to clean up - "snow" on bitmap images. - -2 See_Also - pbm - -2 Author - Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef - Poskanzer. - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright - notice and this permission notice appear in supporting docu- - mentation. This software is provided "as is" without - express or implied warranty. - -1 pbmlife - pbmlife - apply Conway's rules of Life to a portable bitmap - -2 Synopsis - pbmlife [pbmfile] - -2 Description - Reads a portable bitmap as input. Applies the rules of Life - to it for one generation, and produces a portable bitmap as - output. - - A white pixel in the image is interpreted as a live beastie, - and a black pixel as an empty space. - -2 See_Also - pbm - -2 Author - Copyright (C) 1988, 1991 by Jef Poskanzer. - -1 pbmmake - pbmmake - create a blank bitmap of a specified size - -2 Synopsis - pbmmake [-white|-black|-gray ] width height - -2 Description - Produces a portable bitmap of the specified width and - height. The color defaults to white. - -2 Options - In addition to the usual -white and -black, this program - implements -gray. This gives a simple 50% gray pattern with - 1's and 0's alternating. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pbm, ppmmake - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pbmmask - pbmmask - create a mask bitmap from a regular bitmap - -2 Synopsis - pbmmask [-expand] [pbmfile] - -2 Description - Reads a portable bitmap as input. Creates a corresponding - mask bitmap and writes it out. - - The color to be interpreted as "background" is determined - automatically. Regardless of which color is background, the - mask will be white where the background is and black where - the figure is. - - This lets you do a masked paste like this, for objects with - a black background: - pbmmask obj > objmask - pnmpaste < dest -and objmask <x> <y> | pnmpaste -or obj <x> <y> - For objects with a white background, you can either invert - them or add a step: - pbmmask obj > objmask - pnminvert objmask | pnmpaste -and obj 0 0 > blackback - pnmpaste < dest -and objmask <x> <y> | pnmpaste -or blackback <x> <y> - Note that this three-step version works for objects with - black backgrounds too, if you don't care about the wasted - time. - - You can also use masks with graymaps and pixmaps, using the - pnmarith tool. For instance: - ppmtopgm obj.ppm | pgmtopbm -threshold | pbmmask > objmask.pbm - pnmarith -multiply dest.ppm objmask.pbm > t1.ppm - pnminvert objmask.pbm | pnmarith -multiply obj.ppm - > t2.ppm - pnmarith -add t1.ppm t2.ppm - An interesting variation on this is to pipe the mask through - the pnmsmooth script before using it. This makes the boun- - dary between the two images less sharp. - - -expand - Expands the mask by one pixel out from the image. This - is useful if you want a little white border around your - image. (A better solution might be to turn the pbmlife - tool into a general cellular automaton tool...) - -2 See_Also - pnmpaste, pnminvert, pbm, pnmarith, pnmsmooth - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 pbmpscale - pbmpscale - enlarge a portable bitmap with edge smoothing - -2 Synopsis - pbmpscale N [ pbmfile ] - -2 Description - Reads a portable bitmap as input, and outputs a portable - bitmap enlarged N times. Enlargement is done by pixel repli- - cation, with some additional smoothing of corners and edges. - -2 See_Also - pnmenlarge, ppmscale, pbm - -2 Author - Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef - Poskanzer. - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright - notice and this permission notice appear in supporting docu- - mentation. This software is provided "as is" without - express or implied warranty. - -2 Notes - pbmpscale works best for enlargements of 2. Enlargements - greater than 2 should be done by as many enlargements of 2 - as possible, followed by an enlargement by the remaining - factor. - -1 pbmreduce - pbmreduce - read a portable bitmap and reduce it N times - -2 Synopsis - pbmreduce [-floyd|-fs|-threshold ] [-value val] N [pbmfile] - -2 Description - Reads a portable bitmap as input. Reduces it by a factor of - N, and produces a portable bitmap as output. - - pbmreduce duplicates a lot of the functionality of pgmtopbm; - you could do something like pnmscale | pgmtopbm, but - pbmreduce is a lot faster. - - pbmreduce can be used to "re-halftone" an image. Let's say - you have a scanner that only produces black&white, not - grayscale, and it does a terrible job of halftoning (most - b&w scanners fit this description). One way to fix the - halftoning is to scan at the highest possible resolution, - say 300 dpi, and then reduce by a factor of three or so - using pbmreduce. You can even correct the brightness of an - image, by using the -value flag. - -2 Options - By default, the halftoning after the reduction is done via - boustrophedonic Floyd-Steinberg error diffusion; however, - the -threshold flag can be used to specify simple threshold- - ing. This gives better results when reducing line drawings. - - The -value flag alters the thresholding value for all quant- - izations. It should be a real number between 0 and 1. - Above 0.5 means darker images; below 0.5 means lighter. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnmenlarge, pnmscale, pgmtopbm, pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 pbmtext - pbmtext - render text into a bitmap - -2 Synopsis - pbmtext [-font fontfile] [text] - -2 Description - Takes the specified text, either a single line from the com- - mand line or multiple lines from standard input, and renders - it into a bitmap. - -2 Options - By default, pbmtext uses a built-in font. You can also - specify your own font with the -font flag. The fontfile is - a pbm file, created in a very specific way. In your window - system of choice, display the following text in the desired - (fixed-width) font: - - M ",/^_[`jpqy| M - - / !"#$%&'()*+ / - < ,-./01234567 < - > 89:;<=>?@ABC > - @ DEFGHIJKLMNO @ - _ PQRSTUVWXYZ[ _ - { \]^_`abcdefg { - } hijklmnopqrs } - ~ tuvwxyz{|}~ ~ - - M ",/^_[`jpqy| M - - Do a screen grab or window dump of that text, using for - instance xwd, xgrabsc, or screendump. Convert the result - into a pbm file. If necessary, use pnmcut to remove every- - thing except the text. Finally, run it through pnmcrop to - make sure the edges are right up against the text. pbmtext - can figure out the sizes and spacings from that. - -2 See_Also - pbm, pnmcut, pnmcrop - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 pbmto4425 - pbmto4425 - Display PBM images on an AT&T 4425 terminal - -2 Synopsis - pbmto4425 [pbmfile] - -2 Description - Pbmto4425 displays PBM format images on an AT&T 4425 ASCII - terminal using that terminal's mosaic graphics character - set. The program should also work with other VT100-like - terminals with mosaic graphics character sets such as the C. - Itoh CIT-101, but it has not yet been tested on terminals - other than the 4425. - - Pbmto4425 puts the terminal into 132 column mode to achieve - the maximum resolution of the terminal. In this mode the - terminal has a resolution of 264 columns by 69 rows. The - pixels have an aspect ratio of 1:2.6, therefore an image - should be processed before being displayed in a manner such - as this: - - % pnmscale -xscale 2.6 pnmfile \ - | pnmscale -xysize 264 69 \ - | ppmtopgm \ - | pgmtopbm \ - | pbmto4425 - -2 Author - Copyright (C) 1993 by Robert Perlberg - -1 pbmto10x - pbmto10x - convert a portable bitmap into Gemini 10X printer - graphics - -2 Synopsis - pbmto10x [-h] [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a file of Gemini - 10X printer graphics as output. The 10x's printer codes are - alleged to be similar to the Epson codes. - - Note that there is no 10xtopbm tool - this transformation is - one way. - -2 Options - The resolution is normally 60H by 72V. If the -h flag is - specified, resolution is 120H by 144V. You may find it use- - ful to rotate landscape images before printing. - -2 See_Also - pbm - -2 Author - Copyright (C) 1990 by Ken Yap - -1 pbmtoascii - pbmtoascii - convert a portable bitmap into ASCII graphics - -2 Synopsis - pbmtoascii [-1x2|-2x4] [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a somewhat crude - ASCII graphic as output. - - Note that there is no asciitopbm tool - this transformation - is one-way. - -2 Options - The -1x2 and -2x4 flags give you two alternate ways for the - bits to get mapped to characters. With 1x2, the default, - each character represents a group of 1 bit across by 2 bits - down. With -2x4, each character represents 2 bits across by - 4 bits down. With the 1x2 mode you can see the individual - bits, so it's useful for previewing small bitmaps on a non- - graphics terminal. The 2x4 mode lets you display larger - bitmaps on a standard 80-column display, but it obscures - bit-level details. 2x4 mode is also good for displaying - graymaps - "pnmscale -width 158 | pgmnorm | pgmtopbm - -thresh" should give good results. - -2 See_Also - pbm - -2 Author - Copyright (C) 1988, 1992 by Jef Poskanzer. - -1 pbmtoatk - pbmtoatk - convert portable bitmap to Andrew Toolkit raster - object - -2 Synopsis - pbmtoatk [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a Andrew Toolkit - raster object as output. - -2 See_Also - atktopbm, pbm - -2 Author - Copyright (C) 1991 by Bill Janssen. - -1 pbmtobg - pbmtobg - convert a portable bitmap into BitGraph graphics - -2 Synopsis - pbmtobg [rasterop] [x y] < pbmfile - -2 Description - Reads a portable bitmap as input. Produces BBN BitGraph - terminal Display Pixel Data (DPD) sequence as output. - - The rasterop can be specified on the command line. If this - is omitted, 3 (replace) will be used. A position in (x,y) - coordinates can also be specified. If both are given, the - rasterop comes first. The portable bitmap is always taken - from the standard input. - - Note that there is no bgtopbm tool. - -2 See_Also - pbm - -2 Author - Copyright 1989 by Mike Parker. - -1 pbmtocmuwm - pbmtocmuwm - convert a portable bitmap into a CMU window - manager bitmap - -2 Synopsis - pbmtocmuwm [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a CMU window - manager bitmap as output. - -2 See_Also - cmuwmtopbm, pbm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pbmtoepsi - pbmtoepsi - convert a portable bitmap into an encapsulated - PostScript style preview bitmap - -2 Synopsis - pbmtoepsi [-bbonly] [pbmfile] - -2 Description - Reads a portable bitmap as input. Produce an encapsulated - Postscript style bitmap as output. The output is not a stand - alone postscript file, it is only a preview bitmap, which - can be included in an encapsulated PostScript file. Note - that there is no epsitopbm tool - this transformation is one - way. - - This utility is a part of the pstoepsi tool by Doug Crabill - (dgc@cs.purdue.edu). - -2 Options - -bbonly - Only create a boundary box, don't fill it with the - image. - -2 See_Also - pbm, pnmtops, psidtopgm - -2 Author - Copyright (C) 1988 Jef Poskanzer, modified by Doug Crabill - 1992 - -1 pbmtoepson - pbmtoepson - convert a portable bitmap into Epson printer - graphics - -2 Synopsis - pbmtoepson [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a file of Epson - printer graphics as output. - - Note that there is no epsontopbm tool - this transformation - is one way. - -2 See_Also - pbm - -2 Author - Copyright (C) 1991 by John Tiller - (tiller@galois.msfc.nasa.gov) and Jef Poskanzer. - -1 pbmtog3 - pbmtog3 - convert a portable bitmap into a Group 3 fax file - -2 Synopsis - pbmtog3 [pbmfile] - -2 Description - Reads a portable bitmap as output. Produces a Group 3 fax - file as input. - -REFERENCES - The standard for Group 3 fax is defined in CCITT Recommenda- - tion T.4. - -2 Bugs - Probably. - -2 See_Also - g3topbm, pbm - -2 Author - Copyright (C) 1989 by Paul Haeberli <paul@manray.sgi.com>. - -1 pbmtogem - pbmtogem - convert a portable bitmap into a GEM .img file - -2 Synopsis - pbmtogem [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a GEM .img file - as output. - -2 Bugs - It does not support compression of the data. - -2 See_Also - gemtopbm, pbm - -2 Author - Copyright (C) 1988 by David Beckemeyer (bdt!david) and Jef - Poskanzer. - -1 pbmtogo - pbmtogo - convert a portable bitmap into compressed GraphOn - graphics - -2 Synopsis - pbmtogo [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces 2D compressed - GraphOn graphics as output. Be sure to set up your GraphOn - with the following modes: 8 bits / no parity; obeys no - XON/XOFF; NULs are accepted. These are all on the Comm - menu. Also, remember to turn off tty post processing. Note - that there is no gotopbm tool. - -2 See_Also - pbm - -2 Author - Copyright (C) 1988, 1989 by Jef Poskanzer, Michael Haberler, - and Bo Thide'. - -1 pbmtoicon - pbmtoicon - convert a portable bitmap into a Sun icon - -2 Synopsis - pbmtoicon [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a Sun icon as - output. - -2 See_Also - icontopbm, pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 pbmtolj - pbmtolj - convert a portable bitmap into HP LaserJet format - -2 Synopsis - pbmtolj [-resolution N] [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces HP LaserJet data - as output. - - Note that there is no ljtopbm tool. - -2 Options - -resolution - Specifies the resolution of the output device, in dpi. - Typical values are 75, 100, 150, 300. The default is - 75. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer and Michael Haberler. - -1 pbmtoln03 - pbmtoln03 - convert protable bitmap to DEC LN03+ Sixel out- - put - -2 Synopsis - pbmtoln03 [-rltbf] pbmfile - -2 Description - Reads a portable bitmap as input. Produces a DEC LN03+ - Sixel output file. - -2 Options - -l nn - Use "nn" as value for left margin (default 0). - - -r nn - Use "nn" as value for right margin (default 2400). - - -t nn - Use "nn" as value for top margin (default 0). - - -b nn - Use "nn" as value for bottom margin (default 3400). - - -f nn - Use "nn" as value for form length (default 3400). - -2 See_Also - pbm - -2 Author - Tim Cook, 26 Feb 1992 - -1 pbmtolps - pbmtolps - convert portable bitmap to PostScript - -2 Synopsis - pbmtolps [ -dpi n ] [ pbmfile ] - -2 Description - Reads a portable bitmap as input, and outputs PostScript. - The output Postscript uses lines instead of the image opera- - tor to generate a (device dependent) picture which will be - imaged much faster. - - The Postscript path length is constrained to be less that - 1000 points so that no limits are overrun on the Apple - Laserwriter and (presumably) no other printers. - -2 See_Also - pgmtops, ppmtops, pbm - -2 Author - George Phillips <phillips@cs.ubc.ca> - -1 pbmtomacp - pbmtomacp - convert a portable bitmap into a MacPaint file - -2 Synopsis - pbmtomacp [-l left] [-r right] [-b bottom] [-t top] - [pbmfile] - -2 Description - Reads a portable bitmap as input. If no input-file is - given, standard input is assumed. Produces a MacPaint file - as output. - - The generated file is only the data fork of a picture. You - will need a program such as mcvert to generate a Macbinary - or a BinHex file that contains the necessary information to - identify the file as a PNTG file to MacOS. - -2 Options - Left, right, bottom & top let you define a square into the - pbm file, that must be converted. Default is the whole - file. If the file is too large for a MacPaint-file, the - bitmap is cut to fit from ( left, top ). - -2 Bugs - The source code contains comments in a language other than - English. - -2 See_Also - ppmtopict, macptopbm, pbm, mcvert - -2 Author - Copyright (C) 1988 by Douwe van der Schaaf - (...!mcvax!uvapsy!vdschaaf). - -1 pbmtomgr - pbmtomgr - convert a portable bitmap into a MGR bitmap - -2 Synopsis - pbmtomgr [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a MGR bitmap as - output. - -2 See_Also - mgrtopbm, pbm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pbmtopi3 - pbmtopi3 - convert a portable bitmap into an Atari Degas - .pi3 file - -2 Synopsis - pbmtopi3 [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces an Atari Degas - .pi3 file as output. - -2 See_Also - pi3topbm, pbm, ppmtopi1, pi1toppm - -2 Author - Copyright (C) 1988 by David Beckemeyer (bdt!david) and Jef - Poskanzer. - -1 pbmtoplot - pbmtoplot - convert a portable bitmap into a Unix plot - file - -2 Synopsis - pbmtoplot [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a Unix plot - file. - - Note that there is no plottopbm tool - this transformation - is one-way. - -2 See_Also - pbm, plot - -2 Author - Copyright (C) 1990 by Arthur David Olson. - -1 pbmtoptx - pbmtoptx - convert a portable bitmap into Printronix printer - graphics - -2 Synopsis - pbmtoptx [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a file of Prin- - tronix printer graphics as output. - - Note that there is no ptxtopbm tool - this transformation is - one way. - -2 See_Also - pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 pbmtox10bm - pbmtox10bm - convert a portable bitmap into an X10 bitmap - -2 Synopsis - pbmtox10bm [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces an X10 bitmap as - output. This older format is maintained for compatibility. - - Note that there is no x10bmtopbm tool, because xbmtopbm can - read both X11 and X10 bitmaps. - -2 See_Also - pbmtoxbm, xbmtopbm, pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 pbmtoxbm - pbmtoxbm - convert a portable bitmap into an X11 bitmap - -2 Synopsis - pbmtoxbm [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces an X11 bitmap as - output. - -2 See_Also - pbmtox10bm, xbmtopbm, pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 pbmtoybm - pgmtoybm - convert a portable bitmap into a Bennet Yee - "face" file - -2 Synopsis - pbmtoybm [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces as output a file - acceptable to the face and xbm programs by Bennet Yee - (bsy+@cs.cmu.edu). - -2 See_Also - ybmtopbm, pbm, face, face, xbm - -2 Author - Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer. - -1 pbmtozinc - pbmtozinc - convert a portable bitmap into a Zinc bitmap - -2 Synopsis - pbmtozinc [pbmfile] - -2 Description - Reads a portable bitmap as input. Produces a bitmap in the - format used by the Zinc Interface Library (ZIL) Version 1.0 - as output. - -2 See_Also - pbm - -2 Author - Copyright (C) 1988 by James Darrell McCauley - (jdm5548@diamond.tamu.edu) and Jef Poskanzer. - -1 pbmupc - pbmupc - create a Universal Product Code bitmap - -2 Synopsis - pbmupc [-s1|-s2] type manufac product - -2 Description - Generates a Universal Product Code symbol. The three argu- - ments are: a one digit product type, a five digit manufac- - turer code, and a five digit product code. For example, "0 - 72890 00011" is the code for Heineken. - - As presently configured, pbmupc produces a bitmap 230 bits - wide and 175 bits high. The size can be altered by changing - the defines at the beginning of the program, or by running - the output through pnmenlarge or pnmscale. - -2 Options - The -s1 and -s2 flags select the style of UPC to generate. - The default, -s1, looks more or less like this: - |||||||||||||||| - |||||||||||||||| - |||||||||||||||| - |||||||||||||||| - 0||12345||67890||5 - The other style, -s2, puts the product type digit higher up, - and doesn't display the checksum digit: - |||||||||||||||| - |||||||||||||||| - 0|||||||||||||||| - |||||||||||||||| - ||12345||67890|| - -2 See_Also - pbm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pi3topbm - pi3topbm - convert an Atari Degas .pi3 file into a portable - bitmap - -2 Synopsis - pi3topbm [pi3file] - -2 Description - Reads an Atari Degas .pi3 file as input. Produces a port- - able bitmap as output. - -2 See_Also - pbmtopi3, pbm, pi1toppm, ppmtopi1 - -2 Author - Copyright (C) 1988 by David Beckemeyer (bdt!david) and - Diomidis D. Spinellis. - -1 pktopbm - pktopbm - convert packed (PK) format font into portable - bitmap(s) - -2 Synopsis - pktopbm pkfile[.pk] [-c num] pbmfile ... - -2 Description - Reads a packed (PK) font file as input, and produces port- - able bitmaps as output. If the filename "-" is used for any - of the filenames, the standard input stream (or standard - output where appropriate) will be used. - -2 Options - -c num - Sets the character number of the next bitmap written to - num. - -2 See_Also - pbmtopk, pbm - -2 Author - Adapted from Tom Rokicki's pxtopk by Angus Duggan - <ajcd@uk.ac.ed.lfcs>. - -1 xbmtopbm - xbmtopbm - convert an X11 or X10 bitmap into a portable bit- - map - -2 Synopsis - xbmtopbm [bitmapfile] - -2 Description - Reads an X11 or X10 bitmap as input. Produces a portable - bitmap as output. - -2 See_Also - pbmtoxbm, pbmtox10bm, pbm - -2 Author - Copyright (C) 1988 by Jef Poskanzer. - -1 ybmtopbm - ybmtopbm - convert a Bennet Yee "face" file into a portable - bitmap - -2 Synopsis - ybmtopbm [facefile] - -2 Description - Reads a file acceptable to the face and xbm programs by Ben- - net Yee (bsy+@cs.cmu.edu). Writes a portable bitmap as out- - put. - -2 See_Also - pbmtoybm, pbm, face, face, xbm - -2 Author - Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer. - -1 pbmtopk - pbmtopk - convert a portable bitmap into a packed (PK) for- - mat font - -2 Synopsis - pbmtopk pkfile[.pk] tfmfile[.tfm] resolution [-s designsize] - [-p num param...] [-C codingscheme] [-F family] [-f optfile] - [-c num] [-W width] [-H height] [-D depth] [-I ital] [-h - horiz] [-v vert] [-x xoff] [-y yoff] [pbmfile]... - -2 Description - Reads portable bitmaps as input, and produces a packed (PK) - font file and a TFM (TeX font metric) file as output. The - resolution parameter indicates the resolution of the font, - in dots per inch. If the filename "-" is used for any of the - filenames, the standard input stream (or standard output - where appropriate) will be used. - -2 Options - -s designsize - Sets the design size of the font, in TeX's points - (72.27pt to the inch). The default design size is 1. - The TFM parameters are given as multiples of the design - size. - - -p num param... - Sets the first num font parameters for the font. The - first seven parameters are the slant, interword spac- - ing, interword space stretchability, interword space - shrinkability, x-height, quad width, and post-sentence - extra space of the font. Math and symbol fonts may have - more parameters; see The TeXbook for a list of these. - Reasonable default values are chosen for parameters - which are not specified. - - -C codingscheme - Sets the coding scheme comment in the TFM file. - - -F family - Sets the font family comment in the TFM file. - - -f optfile - Reads the file optfile, which should contain a lines of - the form: - - filename xoff yoff horiz vert width height depth ital - - The pbm files specified by the filename parameters are - inserted consecutively in the font with the specified - attributes. If any of the attributes are omitted, or - replaced with "*", a default value will be calculated - from the size of the bitmap. The settings of the -W, - -H, -D, -I, -h, -v, -x, and -y options do not affected - characters created in this way. The character number - can be changed by including a line starting with "=", - followed by the new number. Lines beginning with "%" - or "#" are ignored. - - -c num - Sets the character number of the next bitmap encoun- - tered to num. - - -W width - Sets the TFM width of the next character to width (in - design size multiples). - - -H height - Sets the TFM height of the next character to height (in - design size multiples). - - -D depth - Sets the TFM depth of the next character to depth (in - design size multiples). - - -I ital - Sets the italic correction of the next character to - ital (in design size multiples). - - -h horiz - Sets the horizontal escapement of the next character to - horiz (in pixels). - - -v vert - Sets the vertical escapement of the next character to - vert (in pixels). - - -x xoff - Sets the horizontal offset of the next character to - xoff (in pixels). - - -y yoff - Sets the vertical offset of the next character to yoff - (in pixels, from the top row). - -2 See_Also - pktopbm, pbm - -2 Author - Adapted from Tom Rokicki's pxtopk by Angus Duggan - <ajcd@uk.ac.ed.lfcs>. - -1 libpbm C LIBRARY FUNCTIONS libpbm - libpbm - functions to support portable bitmap programs - -2 Synopsis - #include <pbm.h> - cc ... libpbm.a - - -2 Description - PACKAGE-WIDE ROUTINES - KEYWORD MATCHING - int pm_keymatch( char* str, char* keyword, int minchars ) - - Does a case-insensitive match of str against keyword. str - can be a leading sunstring of keyword, but at least minchars - must be present. - - LOG BASE TWO - int pm_maxvaltobits( int maxval ) - int pm_bitstomaxval( int bits ) - - Convert between a maxval and the minimum number of bits - required to hold it. - - MESSAGES AND ERRORS - void pm_message( char* fmt, ... ) - - printf() style routine to write an informational message. - - void pm_error( char* fmt, ... ) - - printf() style routine to write an error message and abort. - - void pm_usage( char* usage ) - - Write a usage message. The string should indicate what - arguments are to be provided to the program. - - GENERIC FILE MANAGEMENT - FILE* pm_openr( char* name ) - - Open the given file for reading, with appropriate error - checking. A filename of "-" is taken as equivalent to - stdin. - - FILE* pm_openw( char* name ) - - Open the given file for writing, with appropriate error - checking. - - void pm_close( FILE* fp ) - - Close the file descriptor, with appropriate error checking. - - ENDIAN I/O - int pm_readbigshort( FILE* in, short* sP ) - int pm_writebigshort( FILE* out, short s ) - int pm_readbiglong( FILE* in, long* lP ) - int pm_writebiglong( FILE* out, long l ) - int pm_readlittleshort( FILE* in, short* sP ) - int pm_writelittleshort( FILE* out, short s ) - int pm_readlittlelong( FILE* in, long* lP ) - int pm_writelittlelong( FILE* out, long l ) - - Routines to read and write short and long ints in either - big- or little-endian byte order. - -2 Description - PBM-SPECIFIC ROUTINES - TYPES AND CONSTANTS - typedef ... bit; - #define PBM_WHITE ... - #define PBM_BLACK ... - - each bit should contain only the values of PBM_WHITE or - PBM_BLACK. - - #define PBM_FORMAT ... - #define RPBM_FORMAT ... - #define PBM_TYPE PBM_FORMAT - #define PBM_FORMAT_TYPE(f) ... - - For distinguishing different file formats and types. - - INITIALIZATION - void pbm_init( int* argcP, char* argv[] ) - - All PBM programs must call this routine. - - MEMORY MANAGEMENT - bit** pbm_allocarray( int cols, int rows ) - - Allocate an array of bits. - - bit* pbm_allocrow( int cols ) - - Allocate a row of the given number of bits. - - void pbm_freearray( bit** bits, int rows ) - - Free the array allocated with pbm_allocarray() containing - the given number of rows. - - void pbm_freerow( bit* bitrow ) - - Free a row of bits. - - READING FILES - void pbm_readpbminit( FILE* fp, int* colsP, int* rowsP, int* formatP ) - - Read the header from a PBM file, filling in the rows, cols - and format variables. - - void pbm_readpbmrow( FILE* fp, bit* bitrow, int cols, int format ) - - Read a row of bits into the bitrow array. Format and cols - were filled in by pbm_readpbminit(). - - bit** pbm_readpbm( FILE* fp, int* colsP, int* rowsP ) - - Read an entire bitmap file into memory, returning the allo- - cated array and filling in the rows and cols variables. - This function combines pbm_readpbminit(), pbm_allocarray() - and pbm_readpbmrow(). - - char* pm_read_unknown_size( FILE* fp, long* nread ) - - Read an entire file or input stream of unknown size to a - buffer. Allocate memory more memory as needed. The calling - routine has to free the allocated buffer with free(). - pm_read_unknown_size() returns a pointer to the allocated - buffer. The nread argument returns the number of bytes read. - - WRITING FILES - void pbm_writepbminit( FILE* fp, int cols, int rows, int forceplain ) - - Write the header for a portable bitmap file. The forceplain - flag forces a plain-format file to be written, as opposed to - a raw-format one. - - void pbm_writepbmrow( FILE* fp, bit* bitrow, int cols, int forceplain ) - - Write a row from a portable bitmap. - - void pbm_writepbm( FILE* fp, bit** bits, int cols, int rows, int forceplain ) - - Write the header and all data for a portable bitmap. This - function combines pbm_writepbminit() and pbm_writepbmrow(). - -2 See_Also - libpgm, libppm, libpnm - -2 Author - Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer. - -1 pbm - pbm - portable bitmap file format - -2 Description - The portable bitmap format is a lowest common denominator - monochrome file format. It was originally designed to make - it reasonable to mail bitmaps between different types of - machines using the typical stupid network mailers we have - today. Now it serves as the common language of a large fam- - ily of bitmap conversion filters. The definition is as fol- - lows: - - - A "magic number" for identifying the file type. A pbm - file's magic number is the two characters "P1". - - - Whitespace (blanks, TABs, CRs, LFs). - - - A width, formatted as ASCII characters in decimal. - - - Whitespace. - - - A height, again in ASCII decimal. - - - Whitespace. - - - Width * height bits, each either '1' or '0', starting at - the top-left corner of the bitmap, proceeding in normal - English reading order. - - - The character '1' means black, '0' means white. - - - Whitespace in the bits section is ignored. - - - Characters from a "#" to the next end-of-line are ignored - (comments). - - - No line should be longer than 70 characters. - - Here is an example of a small bitmap in this format: - P1 - # feep.pbm - 24 7 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 - 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 - 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 - 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 - 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - - Programs that read this format should be as lenient as pos- - sible, accepting anything that looks remotely like a bitmap. - There is also a variant on the format, available by setting - the RAWBITS option at compile time. This variant is dif- - ferent in the following ways: - - - The "magic number" is "P4" instead of "P1". - - - The bits are stored eight per byte, high bit first low bit - last. - - - No whitespace is allowed in the bits section, and only a - single character of whitespace (typically a newline) is - allowed after the height. - - - The files are eight times smaller and many times faster to - read and write. - -2 See_Also - atktopbm, brushtopbm, cmuwmtopbm, g3topbm, gemtopbm, icontopbm, - macptopbm, mgrtopbm, pi3topbm, xbmtopbm, ybmtopbm, pbmto10x, - pnmtoascii, pbmtoatk, pbmtobbnbg, pbmtocmuwm, pbmtoepson, pbmtog3, - pbmtogem, pbmtogo, pbmtoicon, pbmtolj, pbmtomacp, pbmtomgr, - pbmtopi3, pbmtoplot, pbmtoptx, pbmtox10bm, pbmtoxbm, pbmtoybm, - pbmtozinc, pbmlife, pbmmake, pbmmask, pbmreduce, pbmtext, pbmupc, - pnm, pgm, ppm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 bioradtopgm - bioradtopgm - convert a Biorad confocal file into a portable - graymap - -2 Synopsis - bioradtopgm [-image#] [imagedata] - -2 Description - Reads a Biorad confocal file as input. Produces a portable - graymap as output. If the resulting image is upside down, - run it through pnmflip -tb . - -2 Options - -image# - A Biorad image file may contain more than one image. - With this flag, you can specify which image to extract - (only one at a time). The first image in the file has - number zero. If no image number is supplied, only - information about the image size and the number of - images in the input is printed out. No output is pro- - duced. - -2 Bugs - A Biorad image may be in word format. If PbmPlus is not com- - piled with the "BIGGRAYS" flag, word files can not be con- - verted. See the Makefile. - -2 See_Also - pgm, pnmflip - -2 Authors - Copyright (C) 1993 by Oliver Trepte - -1 fitstopgm - fitstopgm - convert a FITS file into a portable graymap - -2 Synopsis - fitstopgm [-image N] [FITSfile] - -2 Description - Reads a FITS file as input. Produces a portable graymap as - output. The results may need to be flipped top for bottom; - if so, just pipe the output through pnmflip -tb. - -2 Options - The -image option is for FITS files with three axes. The - assumption is that the third axis is for multiple images, - and this option lets you select which one you want. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 References - FITS stands for Flexible Image Transport System. A full - description can be found in Astronomy & Astrophysics Supple- - ment Series 44 (1981), page 363. - -2 See_Also - pgmtofits, pgm, pnmflip - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 fstopgm - fstopgm - convert a Usenix FaceSaver(tm) file into a port- - able graymap - -2 Synopsis - fstopgm [fsfile] - -2 Description - Reads a Usenix FaceSaver(tm) file as input. Produces a - portable graymap as output. - - FaceSaver(tm) files sometimes have rectangular pixels. - While fstopgm won't re-scale them into square pixels for - you, it will give you the precise pnmscale command that will - do the job. Because of this, reading a FaceSaver(tm) image - is a two-step process. First you do: - fstopgm > /dev/null - This will tell you whether you need to use pnmscale. Then - use one of the following pipelines: - fstopgm | pgmnorm - fstopgm | pnmscale -whatever | pgmnorm - To go to PBM, you want something more like one of these: - fstopgm | pnmenlarge 3 | pgmnorm | pgmtopbm - fstopgm | pnmenlarge 3 | pnmscale <whatever> | pgmnorm | pgmtopbm - You want to enlarge when going to a bitmap because otherwise - you lose information; but enlarging by more than 3 does not - look good. - - FaceSaver is a registered trademark of Metron Computerware - Ltd. of Oakland, CA. - -2 See_Also - pgmtofs, pgm, pgmnorm, pnmenlarge, pnmscale, - pgmtopbm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 hipstopgm - hipstopgm - convert a HIPS file into a portable graymap - -2 Synopsis - hipstopgm [hipsfile] - -2 Description - Reads a HIPS file as input. Produces a portable graymap as - output. - - If the HIPS file contains more than one frame in sequence, - hipstopgm will concatenate all the frames vertically. - - HIPS is a format developed at the Human Information Process- - ing Laboratory, NYU. - -2 See_Also - pgm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 lispmtopgm - lispmtopgm - convert a Lisp Machine bitmap file into pgm - format - -2 Synopsis - lispmtopgm [lispmfile] - -2 Description - Reads a Lisp Machine bitmap as input. Produces a portable - graymap as output. - - This is the file format written by the tv:write-bit-array- - file function on TI Explorer and Symbolics lisp machines. - - Multi-plane bitmaps on lisp machines are color; but the - lispm image file format does not include a color map, so we - must treat it as a graymap instead. This is unfortunate. - -2 See_Also - pgmtolispm, pgm - -2 Bugs - The Lispm bitmap file format is a bit quirky; Usually the - image in the file has its width rounded up to the next - higher multiple of 32, but not always. If the width is not - a multiple of 32, we don't deal with it properly, but - because of the Lispm microcode, such arrays are probably not - image data anyway. - - Also, the lispm code for saving bitmaps has a bug, in that - if you are writing a bitmap which is not mod32 across, the - file may be up to 7 bits too short! They round down instead - of up, and we don't handle this bug gracefully. - - No color. - -2 Author - Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer. - -1 pbmtopgm - pbmtopgm - convert portable bitmap to portable graymap by - averaging areas - -2 Synopsis - pbmtopgm <width> <height> [pbmfile] - -2 Description - Reads a portable bitmap as input. Outputs a portable graymap - created by averaging the number of pixels within a sample - area of width by height around each point. Pbmtopgm is simi- - lar to a special case of ppmconvol. A ppmsmooth step may be - needed after pbmtopgm. - - Pbmtopgm has the effect of anti-aliasing bitmaps which con- - tain distinct line features. - -2 See_Also - pbm - -2 Author - Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef - Poskanzer. - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright - notice and this permission notice appear in supporting docu- - mentation. This software is provided "as is" without - express or implied warranty. - -2 Notes - Pbmtopgm works best with odd sample width and heights. - -1 pgmbentley - pgmbentley - Bentleyize a portable graymap - -2 Synopsis - pgmbentley [pgmfile] - -2 Description - Reads a portable graymap as input. Performs The Bentley - Effect, and writes a portable graymap as output. - - The Bentley Effect is described in "Beyond Photography" by - Holzmann, chapter 4, photo 4. It's a vertical smearing - based on brightness. - -2 See_Also - pgmoil, ppmrelief, pgm - -2 Author - Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com) - -1 pgmenhance - pgmenhance - edge-enhance a portable graymap - -2 Synopsis - pgmenhance [-N] [pgmfile] - -2 Description - Reads a portable graymap as input. Enhances the edges, and - writes a portable graymap as output. - - The edge enhancing technique is taken from Philip R. - Thompson's "xim" program, which in turn took it from section - 6 of "Digital Halftones by Dot Diffusion", D. E. Knuth, ACM - Transaction on Graphics Vol. 6, No. 4, October 1987, which - in turn got it from two 1976 papers by J. F. Jarvis et. al. - -2 Options - The optional -N flag should be a digit from 1 to 9. 1 is - the lowest level of enhancement, 9 is the highest, The - default is 9. - -2 See_Also - pgmedge, pgm, pbm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pgmhist - pgmhist - print a histogram of the values in a portable - graymap - -2 Synopsis - pgmhist [pgmfile] - -2 Description - Reads a portable graymap as input. Prints a histogram of - the gray values. - -2 See_Also - pgmnorm, pgm, ppmhist - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pgmnoise - pgmnoise - create a graymap made up of white noise - -2 Synopsis - pgmnoise width height - -2 Description - Creates a portable graymap that is made up of random pixels - with gray values in the range of 0 to PGM_MAXMAXVAL (depends - on the compilation, either 255 or 65535). The graymap has a - size of width * height pixels. - -2 See_Also - pgm(5) - -2 Author - Copyright (C) 1993 by Frank Neumann - -1 pgmnorm - pgmnorm - normalize the contrast in a portable graymap - -2 Synopsis - pgmnorm [-bpercent N | -bvalue N] [-wpercent N | -wvalue N] - [pgmfile] - -2 Description - Reads a portable graymap as input. Normalizes the contrast - by forcing the lightest pixels to white, the darkest pixels - to black, and linearly rescaling the ones in between; and - produces a portable graymap as output. - -2 Options - By default, the darkest 2 percent of all pixels are mapped - to black, and the lightest 1 percent are mapped to white. - You can override these percentages by using the -bpercent - and -wpercent flags, or you can specify the exact pixel - values to be mapped by using the -bvalue and -wvalue flags. - Appropriate numbers for the flags can be gotten from the - pgmhist tool. If you just want to enhance the contrast, - then choose values at elbows in the histogram; e.g. if value - 29 represents 3% of the image but value 30 represents 20%, - choose 30 for bvalue. If you want to lighten the image, - then set bvalue to 0 and just fiddle with wvalue; similarly, - to darken the image, set wvalue to maxval and play with - bvalue. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pgmhist, pgm - -2 Author - Partially based on the fbnorm filter in Michael Mauldin's - "Fuzzy Pixmap" package. - - Copyright (C) 1989 by Jef Poskanzer. - -1 pgmoil - pgmoil - turn a portable graymap into an oil painting - -2 Synopsis - pgmoil [-n N] [pgmfile] - -2 Description - Reads a portable graymap as input. Does an "oil transfer", - and writes a portable graymap as output. - - The oil transfer is described in "Beyond Photography" by - Holzmann, chapter 4, photo 7. It's a sort of localized - smearing. - -2 Options - The optional -n flag controls the size of the area smeared. - The default value is 3. - -2 Bugs - Takes a long time to run. - -2 See_Also - pgmbentley, ppmrelief, pgm - -2 Author - Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com) - -1 pgmramp - pgmramp - generate a grayscale ramp - -2 Synopsis - pgmramp -lr|-tb | -rectangle|-ellipse width height - -2 Description - Generates a graymap of the specified size containing a - black-to-white ramp. These ramps are useful for multiplying - with other images, using the pnmarith tool. - -2 Options - -lr A left to right ramp. - - -tb A top to bottom ramp. - - -rectangle - A rectangular ramp. - - -ellipse - An elliptical ramp. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnmarith, pgm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pgmtofits - pgmtofits - convert a portable graymap into FITS format - -2 Synopsis - pgmtofits [pgmfile] - -2 Description - Reads a portable graymap as input. Produces a FITS file as - output. - - FITS stands for Flexible Image Transport System. A full - description can be found in Astronomy & Astrophysics Supple- - ment Series 44 (1981), page 363. - -2 See_Also - fitstopgm, pgm - -2 Author - Copyright (C) 1989 by Wilson H. Bent (whb@hoh-2.att.com). - -1 pgmtofs - pgmtofs - convert portable graymap to Usenix FaceSaver(tm) - format - -2 Synopsis - pgmtofs [pgmfile] - -2 Description - Reads a portable graymap as input. Produces Usenix - FaceSaver(tm) format as output. - - FaceSaver is a registered trademark of Metron Computerware - Ltd. of Oakland, CA. - -2 See_Also - fstopgm, pgm - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 pgmtolispm - pgmtolispm - convert a portable graymap into Lisp Machine - format - -2 Synopsis - pgmtolispm [pgmfile] - -2 Description - Reads a portable graymap as input. Produces a Lisp Machine - bitmap as output. - - This is the file format read by the tv:read-bit-array-file - function on TI Explorer and Symbolics lisp machines. - - Given a pgm (instead of a pbm) a multi-plane image will be - output. This is probably not useful unless you have a color - lisp machine. - - Multi-plane bitmaps on lisp machines are color; but the - lispm image file format does not include a color map, so we - must treat it as a graymap instead. This is unfortunate. - -2 See_Also - lispmtopgm, pgm - -2 Bugs - Output width is always rounded up to the nearest multiple of - 32; this might not always be what you want, but it probably - is (arrays which are not modulo 32 cannot be passed to the - Lispm BITBLT function, and thus cannot easily be displayed - on the screen). - - No color. - -2 Author - Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer. - -1 pgmtopbm - pgmtopbm - convert a portable graymap into a portable bitmap - -2 Synopsis - pgmtopbm [-floyd|-fs|-threshold |-dither8|-d8|-cluster3 |- - c3|-cluster4|-c4 |-cluster8|-c8] [-value val] [pgmfile] - -2 Description - Reads a portable graymap as input. Produces a portable bit- - map as output. - - Note that there is no pbmtopgm converter, because any pgm - program can read pbm files automagically. - -2 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). - - 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. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 References - The only reference you need for this stuff is "Digital Half- - toning" by Robert Ulichney, MIT Press, ISBN 0-262-21009-6. - -2 See_Also - pbmreduce, pgm, pbm, pnmconvol - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 psidtopgm - psidtopgm - convert PostScript "image" data into a portable - graymap - -2 Synopsis - psidtopgm width height bits/sample [imagedata] - -2 Description - Reads the "image" data from a PostScript file as input. - Produces a portable graymap as output. - - This is a very simple and limited program, and is here only - because so many people have asked for it. To use it you - have to manually extract the readhexstring data portion from - your PostScript file, and then give the width, height, and - bits/sample on the command line. Before you attempt this, - you should at least read the description of the "image" - operator in the PostScript Language Reference Manual. - - It would probably not be too hard to write a script that - uses this filter to read a specific variety of PostScript - image, but the variation is too great to make a general- - purpose reader. Unless, of course, you want to write a - full-fledged PostScript interpreter... - -2 See_Also - pnmtops, pgm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 spottopgm - spottopgm - convert SPOT satellite images to Portable Grey- - map format - -2 Synopis - spottopgm [-1|2|3] [Firstcol Firstline Lastcol Lastline] - inputfile - -2 Options - -1|2|3 Extract the given colour from the SPOT image. The - colours are infra-red, visible light and ultra- - violet, although I don't know which corresponds to - which number. If the image is in colour, this will - be announced on standard error. The default colour - is 1. - - Firstcol Firstline Lastcol Lastline - Extract the specified rectangle from the SPOT image. - Most SPOT images are 3000 lines long and 3000 or - more columns wide. Unfortunately the SPOT format - only gives the width and not the length. The width - is printed on standard error. The default rectangle - is the width of the input image by 3000 lines. - -2 Description - Spottopgm converts the named inputfile into Portable Greymap - format, defaulting to the first color and the whole SPOT - image unless specified by the options. - -2 INSTALLATION - You must edit the source program and either define - BIGNDIAN or LITTLENDIAN, and fix the typedefs for - uint32, uint16 and uint8 appropriately. - -2 Bugs - Currently spottopgm doesn't determine the length of the - input file; this would involve two passes over the input - file. It defaults to 3000 lines instead. - - Spottopgm could extract a three-color image (ppm), but I - didn't feel like making the program more complicated than it - is now. Besides, there is no one-to-one correspondence - between red, green, blue and infra-red, visible and ultra- - violet. - - I've only had a limited number of SPOT images to play with, - and therefore wouldn't guarantee that this will work on any - other images. - -2 Author - Warren Toomey wkt@csadfa.cs.adfa.oz.au - -1 pgmcrater - pgmcrater - create cratered terrain by fractal forgery - -2 Synopsis - pgmcrater [-number n] [-height|-ysize s] [-width|-xsize s] - [-gamma g] - -2 Description - pgmcrater creates a portable graymap which mimics cratered - terrain. The graymap is created by simulating the impact of - a given number of craters with random position and size, - then rendering the resulting terrain elevations based on a - light source shining from one side of the screen. The size - distribution of the craters is based on a power law which - results in many more small craters than large ones. The - number of craters of a given size varies as the reciprocal - of the area as described on pages 31 and 32 of Peitgen and - Saupe[1]; cratered bodies in the Solar System are observed - to obey this relationship. The formula used to obtain - crater radii governed by this law from a uniformly distri- - buted pseudorandom sequence was developed by Rudy Rucker. - - High resolution images with large numbers of craters often - benefit from being piped through pnmsmooth. The averaging - performed by this process eliminates some of the jagged pix- - els and lends a mellow ``telescopic image'' feel to the - overall picture. - -2 Options - -number n Causes n craters to be generated. If no -number - specification is given, 50000 craters will be gen- - erated. Don't expect to see them all! For every - large crater there are many, many more tiny ones - which tend simply to erode the landscape. In gen- - eral, the more craters you specify the more real- - istic the result; ideally you want the entire ter- - rain to have been extensively turned over again - and again by cratering. High resolution images - containing five to ten million craters are stun- - ning but take quite a while to create. - - -height height - Sets the height of the generated image to height - pixels. The default height is 256 pixels. - - -width width - Sets the width of the generated image to width - pixels. The default width is 256 pixels. - - -xsize width - Sets the width of the generated image to width - pixels. The default width is 256 pixels. - - - -ysize height - Sets the height of the generated image to height - pixels. The default height is 256 pixels. - - -gamma factor - The specified factor is used to gamma correct the - graymap in the same manner as performed by - pnmgamma. The default value is 1.0, which results - in a medium contrast image. Values larger than 1 - lighten the image and reduce contrast, while - values less than 1 darken the image, increasing - contrast. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 Bugs - The -gamma option isn't really necessary since you can - achieve the same effect by piping the output from pgmcrater - through pnmgamma. However, pgmcrater performs an internal - gamma map anyway in the process of rendering the elevation - array into a graymap, so there's no additional overhead in - allowing a user-specified gamma. - - Real craters have two distinct morphologies. pgmcrater - simulates only small craters, which are hemispherical in - shape (regardless of the incidence angle of the impacting - body, as long as the velocity is sufficiently high). Large - craters, such as Copernicus and Tycho on the Moon, have a - ``walled plain'' shape with a cross-section more like: - /\ /\ - _____/ \____________/\____________/ \_____ - Larger craters should really use this profile, including the - central peak, and totally obliterate the pre-existing ter- - rain. - -2 See_Also - pgm, pnmgamma, pnmsmooth - - [1] Peitgen, H.-O., and Saupe, D. eds., The Science Of - Fractal Images, New York: Springer Verlag, 1988. - -2 Author - John Walker - Autodesk SA - Avenue des Champs-Montants 14b - CH-2074 MARIN - Suisse/Schweiz/Svizzera/Svizra/Switzerland - Usenet: kelvin@Autodesk.com - Fax: 038/33 88 15 - Voice: 038/33 76 33 - - software and its documentation for any purpose and without - fee is hereby granted, without any conditions or restric- - tions. This software is provided ``as is'' without express - or implied warranty. - - PLUGWARE! If you like this kind of stuff, you may also enjoy - ``James Gleick's Chaos--The Software'' for MS-DOS, available - for $59.95 from your local software store or directly from - Autodesk, Inc., Attn: Science Series, 2320 Marinship Way, - Sausalito, CA 94965, USA. Telephone: (800) 688-2344 toll- - free or, outside the U.S. (415) 332-2344 Ext 4886. Fax: - (415) 289-4718. ``Chaos--The Software'' includes a more - comprehensive fractal forgery generator which creates - three-dimensional landscapes as well as clouds and planets, - plus five more modules which explore other aspects of Chaos. - The user guide of more than 200 pages includes an introduc- - tion by James Gleick and detailed explanations by Rudy - Rucker of the mathematics and algorithms used by each pro- - gram. - - -1 pgmedge - pgmedge - edge-detect a portable graymap - -2 Synopsis - pgmedge [pgmfile] - -2 Description - Reads a portable graymap as input. Outlines the edges, and - writes a portable graymap as output. Piping the result - through pgmtopbm -threshold and playing with the threshold - value will give a bitmap of the edges. - - The edge detection technique used is to take the Pythagorean - sum of two Sobel gradient operators at 90 degrees to each - other. For more details see "Digital Image Processing" by - Gonzalez and Wintz, chapter 7. - -2 See_Also - pgmenhance, pgmtopbm, pgm, pbm - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 pgmtexture - pgmtexture - calculate textural features on a portable gray- - map - -2 Synopsis - pgmtexture [-d d] [pgmfile] - -2 Description - Reads a portable graymap as input. Calculates textural - features based on spatial dependence matrices at 0, 45, 90, - and 135 degrees for a distance d (default = 1). Textural - features include: - - (1) Angular Second Moment, - (2) Contrast, - (3) Correlation, - (4) Variance, - (5) Inverse Difference Moment, - (6) Sum Average, - (7) Sum Variance, - (8) Sum Entropy, - (9) Entropy, - (10) Difference Variance, - (11) Difference Entropy, - (12, 13) Information Measures of Correlation, and - (14) Maximal Correlation Coefficient. - - Algorithm taken from: - Haralick, R.M., K. Shanmugam, and I. Dinstein. 1973. Tex- - tural features for image classification. IEEE Transactions - on Systems, Man, and Cybertinetics, SMC-3(6):610-621. - -2 Bugs - The program can run incredibly slow for large images (larger - than 64 x 64) and command line options are limited. The - method for finding (14) the maximal correlation coefficient, - which requires finding the second largest eigenvalue of a - matrix Q, does not always converge. - -2 References - IEEE Transactions on Systems, Man, and Cybertinetics, SMC- - 3(6):610-621. - -2 See_Also - pgm, pnmcut - -2 Author - Copyright (C) 1991 by Texas Agricultural Experiment Station, - employer for hire of James Darrell McCauley. - -1 rawtopgm - rawtopgm - convert raw grayscale bytes into a portable gray- - map - -2 Synopsis - rawtopgm [-headerskip N] [-rowskip N] [-tb|-topbottom] - [width height] [imagedata] - -2 Description - Reads raw grayscale bytes as input. Produces a portable - graymap as output. The input file is just grayscale bytes. - If you don't specify the width and height on the command - line, the program will check the size of the image and try - to make a quadratic image of it. It is an error to supply a - non quadratic image without specifying width and height. - The maxval is assumed to be 255. - -2 Options - -headerskip - If the file has a header, you can use this flag to skip - over it. - - -rowskip - If there is padding at the ends of the rows, you can - skip it with this flag. Note that rowskip can be a - real number. Amazingly, I once had an image with 0.376 - bytes of padding per row. This turned out to be due to - a file-transfer problem, but I was still able to read - the image. - - -tb -topbottom - Flips the image upside down. The first pixel in a pgm - file is in the lower left corner of the image. For - conversion from images with the first pixel in the - upper left corner (e.g. the Molecular Dynamics and - Leica confocal formats) this flips the image right. - This is equivalent to rawtopgm [file] | pnmflip -tb . - -2 Bugs - If you don't specify the image width and height, the program - will try to read the entire image to a memory buffer. If you - get a message that states that you are out of memory, try to - specify the width and height on the command line. Also, the - -tb option consumes much memory. - -2 See_Also - pgm, rawtoppm, pnmflip - -2 Authors - Copyright (C) 1989 by Jef Poskanzer. - Modified June 1993 by Oliver Trepte, oliver@fysik4.kth.se - -1 pnmarith - pnmarith - perform arithmetic on two portable anymaps - -2 Synopsis - pnmarith -add|-subtract|-multiply| pnmfile1 pnmfile2 - -2 Description - Reads two portable anymaps as input. Performs the specified - arithmetic operation, and produces a portable anymap as out- - put. The two input anymaps must be the same width and - height. - - The arithmetic is performed between corresponding pixels in - the two anymaps, as if maxval was 1.0, black was 0.0, and a - linear scale in between. Results that fall outside of - [0..1) are truncated. - - The operator -difference calculates the absolute value of - pnmarith -subtract pnmfile1 pnmfile2, i.e. no truncation is - done. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pbmmask, pnmpaste, pnminvert, pnm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. Lightly modified - by Marcel Wijkstra <wijkstra@fwi.uva.nl> - -1 pnmcat - pnmcat - concatenate portable anymaps - -2 Synopsis - pnmcat [-white|-black] -leftright|-lr [-jtop|-jbottom] - pnmfile pnmfile ... - pnmcat [-white|-black] -topbottom|-tb [-jleft|-jright] - pnmfile pnmfile ... - -2 Description - Reads portable anymaps as input. Concatenates them either - left to right or top to bottom, and produces a portable - anymap as output. - -2 Options - If the anymaps are not all the same height (left-right) or - width (top-bottom), the smaller ones have to be justified - with the largest. By default, they get centered, but you - can specify one side or the other with one of the -j* flags. - So, -topbottom -jleft would stack the anymaps on top of each - other, flush with the left edge. - - The -white and -black flags specify what color to use to - fill in the extra space when doing this justification. If - neither is specified, the program makes a guess. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pnmcomp - pnmcomp - composite two portable anymap files together - -2 Synopsis - pnmcomp [-invert] [-xoffN] [-yoffN] [-alphapgmfile] overlay - [pnm-input] [pnm-output] - -2 Description - Reads in a portable any map image and put a overlay upon it, - with optional alpha mask. The -alpha pgmfile allows you to - also add an alpha mask file to the compositing process, the - range of max and min can be swapped by using the -invert - option. The -xoff and -yoff arguments can be negative, - allowing you to shift the overlay off the top corner of the - screen. - -2 See_Also - pnm - -2 Author - Copyright (C) 1992 by David Koblas (koblas@mips.com). - -1 pnmconvol - pnmconvol - general MxN convolution on a portable anymap - -2 Synopsis - pnmconvol convolutionfile [pnmfile] - -2 Description - Reads two portable anymaps as input. Convolves the second - using the first, and writes a portable anymap as output. - - Convolution means replacing each pixel with a weighted aver- - age of the nearby pixels. The weights and the area to aver- - age are determined by the convolution matrix. The unsigned - numbers in the convolution file are offset by -maxval/2 to - make signed numbers, and then normalized, so the actual - values in the convolution file are only relative. - - Here is a sample convolution file; it does a simple average - of the nine immediate neighbors, resulting in a smoothed - image: - P2 - 3 3 - 18 - 10 10 10 - 10 10 10 - 10 10 10 - - To see how this works, do the above-mentioned offset: 10 - - 18/2 gives 1. The possible range of values is from 0 to 18, - and after the offset that's -9 to 9. The normalization step - makes the range -1 to 1, and the values get scaled - correspondingly so they become 1/9 - exactly what you want. - The equivalent matrix for 5x5 smoothing would have maxval 50 - and be filled with 26. - - The convolution file will usually be a graymap, so that the - same convolution gets applied to each color component. How- - ever, if you want to use a pixmap and do a different convo- - lution to different colors, you can certainly do that. - -2 See_Also - pnmsmooth, pnm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 pnmcrop - pnmcrop - crop a portable anymap - -2 Synopsis - pnmcrop [-white|-black] [pnmfile] - -2 Description - Reads a portable anymap as input. Removes edges that are - the background color, and produces a portable anymap as out- - put. - -2 Options - By default, it makes a guess as to what the background color - is. You can override the default with the -white and -black - flags. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnmcut, pnm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pnmcut - pnmcut - cut a rectangle out of a portable anymap - -2 Synopsis - pnmcut x y width height [pnmfile] - -2 Description - Reads a portable anymap as input. Extracts the specified - rectangle, and produces a portable anymap as output. The x - and y can be negative, in which case they are interpreted - relative to the right and bottom of the anymap, respec- - tively. - -2 See_Also - pnm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pnmdepth - pnmdepth - change the maxval in a portable anymap - -2 Synopsis - pnmdepth newmaxval [pnmfile] - -2 Description - Reads a portable anymap as input. Scales all the pixel - values, and writes out the image with the new maxval. Scal- - ing the colors down to a smaller maxval will result in some - loss of information. - - Be careful of off-by-one errors when choosing the new max- - val. For instance, if you want the color values to be five - bits wide, use a maxval of 31, not 32. - -2 See_Also - pnm, ppmquant, ppmdither - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 pnmenlarge - pnmenlarge - read a portable anymap and enlarge it N times - -2 Synopsis - pnmenlarge N [pnmfile] - -2 Description - Reads a portable anymap as input. Replicates its pixels N - times, and produces a portable anymap as output. - - pnmenlarge can only enlarge by integer factors. The slower - but more general pnmscale can enlarge or reduce by arbitrary - factors, and pbmreduce can reduce by integer factors, but - only for bitmaps. - - If you enlarge by a factor of 3 or more, you should probably - add a pnmsmooth step; otherwise, you can see the original - pixels in the resulting image. - -2 See_Also - pbmreduce, pnmscale, pnmsmooth, pnm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pnmfile - pnmfile - describe a portable anymap - -2 Synopsis - pnmfile [pnmfile] ... - -2 Description - Reads one or more portable anymaps as input. Writes out - short descriptions of the image type, size, etc. This is - mostly for use in shell scripts, so the format is not par- - ticularly pretty. - -2 See_Also - pnm, file - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 pnmflip - pnmflip - perform one or more flip operations on a portable - anymap - -2 Synopsis - pnmflip [-leftright|-lr] [-topbottom|-tb] [-transpose|-xy] - [-rotate90|-r90|-ccw ] [-rotate270|-r270|-cw ] [- - rotate180|-r180] [pnmfile] - -2 Description - Reads a portable anymap as input. Performs one or more flip - operations, in the order specified, and writes out a port- - able anymap. - -2 Options - The flip operations available are: left for right (- - leftright or -lr); top for bottom (-topbottom or -tb); and - transposition (-transpose or -xy). In addition, some canned - concatenations are available: -rotate90 or -ccw is - equivalent to -transpose -topbottom; -rotate270 or -cw is - equivalent to -transpose -leftright; and -rotate180 is - equivalent to -leftright -topbottom. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnmrotate, pnm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pnminvert - pnminvert - invert a portable anymap - -2 Synopsis - pnminvert [pnmfile] - -2 Description - Reads a portable anymap as input. Inverts it black for - white and produces a portable anymap as output. - -2 See_Also - pnm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pnmnoraw - pnmnoraw - force a portable anymap into plain format - -2 Synopsis - pnmnoraw [pnmfile] - -2 Description - Reads a portable anymap as input. Writes it out in plain - (non-raw) format. This is fairly useless if you haven't - defined the PBMPLUSAWBITS compile-time option. - -2 See_Also - pnm - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 pnmpad - pnmpad - add borders to portable anymap - -2 Synopsis - pnmpad [-white|-black] [-l#] [-r#] [-t#] [-b#] [pnmfile] - -2 Description - Reads a portable anymap as input. Outputs a portable anymap - with extra borders of the sizes specified. The colour of the - borders can be set to black or white (default black). - - -2 See_Also - pbmmake, pnmpaste, pbm - -2 Author - Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef - Poskanzer. - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright - notice and this permission notice appear in supporting docu- - mentation. This software is provided "as is" without - express or implied warranty. - -1 pnmpaste - pnmpaste - paste a rectangle into a portable anymap - -2 Synopsis - pnmpaste [-replace|-or|-and |-xor] frompnmfile x y - [intopnmfile] - -2 Description - Reads two portable anymaps as input. Inserts the first - anymap into the second at the specified location, and pro- - duces a portable anymap the same size as the second as out- - put. If the second anymap is not specified, it is read from - stdin. The x and y can be negative, in which case they are - interpreted relative to the right and bottom of the anymap, - respectively. - - This tool is most useful in combination with pnmcut. For - instance, if you want to edit a small segment of a large - image, and your image editor cannot edit the large image, - you can cut out the segment you are interested in, edit it, - and then paste it back in. - - Another useful companion tool is pbmmask. - - The optional flag specifies the operation to use when doing - the paste. The default is -replace. The other, logical - operations are only allowed if both input images are bit- - maps. These operations act as if white is TRUE and black is - FALSE. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnmcut, pnminvert, pnmarith, pnm, pbmmask - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 pnmscale - pnmscale - scale a portable anymap - -2 Synopsis - pnmscale s [pnmfile] - pnmscale -xsize|-width|-ysize| -height s [pnmfile] - pnmscale -xscale|-yscale s [pnmfile] - pnmscale -xscale|-xsize|-width s -yscale|-ysize|-height s - [pnmfile] - pnmscale -xysize x y [pnmfile] - -2 Description - Reads a portable anymap as input. Scales it by the speci- - fied factor or factors and produces a portable anymap as - output. If the input file is in color, the output will be - too, otherwise it will be grayscale. You can both enlarge - (scale factor > 1) and reduce (scale factor < 1). - - You can specify one dimension as a pixel size, and the other - dimension will be scaled correspondingly. - - You can specify one dimension as a scale, and the other - dimension will not be scaled. - - You can specify different sizes or scales for each axis. - - Or, you can use the special -xysize flag, which fits the - image into the specified size without changing the aspect - ratio. - - All flags can be abbreviated to their shortest unique pre- - fix. - - If you enlarge by a factor of 3 or more, you should probably - add a pnmsmooth step; otherwise, you can see the original - pixels in the resulting image. - -2 See_Also - pbmreduce, pnmenlarge, pnmsmooth, pnm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 pnmtile - pnmtile - replicate a portable anymap into a specified size - -2 Synopsis - pnmtile width height [pnmfile] - -2 Description - Reads a portable anymap as input. Replicates it until it is - the specified size, and produces a portable anymap as out- - put. - -2 See_Also - pnm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pnmtoddif - pnmtoddif - Convert a portable anymap to DDIF format - -2 Synopis - pnmtoddif pnmtoddif [-resolution x y] [pnmfile [ddiffile]] - -2 Description - pnmtoddif takes a portable anymap from standard input and - converts it into a DDIF image file on standard output or the - specified DDIF file. - - pbm format (bitmap) data is written as 1 bit DDIF, pgm for- - mat data (greyscale) as 8 bit greyscale DDIF, and ppm format - data is written as 8,8,8 bit color DDIF. All DDIF image - files are written as uncompressed. The data plane organiza- - tion is interleaved by pixel. - - In addition to the number of pixels in the width and height - dimension, DDIF images also carry information about the size - that the image should have, that is, the physical space that - a pixel occupies. PBMPLUS images do not carry this informa- - tion, hence it has to be externally supplied. The default - of 78 dpi has the beneficial property of not causing a - resize on most Digital Equipment Corporation color monitors. - -2 Options - resolution - The horizontal and vertical resolution of the output - image in dots per inch. Defaults to 78 dpi. - - pnmfile The filename for the image file in pnm for- - mat. If this argument is omitted, input is - read from stdin. - - ddiffile The filename for the image file to be created - in DDIF format. If this argument is omitted, - the ddiffile is written to standard output. - It can only specified if a pnmfile is also - specified. - -2 Author - Burkhard Neidecker-Lutz - Digital Equipment Corporation, CEC Karlsruhe - neideck@nestvx.enet.dec.com - -1 pnmtops - pnmtops - convert portable anymap to PostScript - -2 Synopsis - pnmtops [-scale s] [-turn|-noturn] [-rle|-runlength] [-dpi - n] [-width n] [-height n] [pnmfile] - -2 Description - Reads a portable anymap as input. Produces Encapsulated - PostScript as output. - - If the input file is in color (PPM), a color PostScript file - gets written. Some PostScript interpreters can't handle - color PostScript. If you have one of these you will need to - run your image through ppmtopgm first. - - Note that there is no pstopnm tool - this transformation is - one-way, because a pstopnm tool would be a full-fledged - PostScript interpreter, which is beyond the scope of this - package. However, see the psidtopgm tool, which can read - grayscale non-runlength PostScript image data. Also, if - you're willing to install the fairly large GhostScript pack- - age, it comes with a pstoppm script. - -2 Options - The -scale flag controls the scale of the result. The - default scale is 1, which on a 300 dpi printer such as the - Apple LaserWriter makes the output look about the same size - as the input would if it was displayed on a typical 72 dpi - screen. To get one PNM pixel per 300 dpi printer pixel, use - "-scale 0.25". - - The -turn and -noturn flags control whether the image gets - turned 90 degrees. Normally, if an image is wider than it - is tall, it gets turned automatically to better fit the - page. If the -turn flag is specified, it will be turned no - matter what its shape; and if the -noturn flag is specified, - it will not be turned no matter what its shape. - - The -rle or -runlength flag specifies run-length compres- - sion. This may save time if the host-to-printer link is - slow; but normally the printer's processing time dominates, - so -rle makes things slower. - - The -dpi flag lets you specify the dots per inch of your - output device. The default is 300 dpi. In theory - PostScript is device-independent and you don't have to worry - about this, but in practice its raster rendering can have - unsightly bands if the device pixels and the image pixels - aren't in sync. - - The -width and -height flags let you specify the size of the - page. The default is 8.5 inches by 11 inches. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnm, psidtopgm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 pnmtorast - pnmtorast - convert a portable pixmap into a Sun rasterfile - -2 Synopsis - pnmtorast [-standard|-rle] [pnmfile] - -2 Description - Reads a portable pixmap as input. Produces a Sun rasterfile - as output. - - Color values in Sun rasterfiles are eight bits wide, so - pnmtorast will automatically scale colors to have a maxval - of 255. An extra pnmdepth step is not necessary. - -2 Options - The -standard flag forces the result to be in RT_STANDARD - form; the -rle flag, RT_BYTE_ENCODED, which is smaller but, - well, less standard. The default is -rle. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - rasttopnm, pnm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 pnmtoxwd - pnmtoxwd - convert a portable anymap into an X11 window dump - -2 Synopsis - pnmtoxwd [-pseudodepth n] [-directcolor] [pnmfile] - -2 Description - Reads a portable anymap as input. Produces an X11 window - dump as output. This window dump can be displayed using the - xwud tool. - - Normally, pnmtoxwd produces a StaticGray dump file for pbm - and pgm files. For ppm, it writes a PseudoColor dump file - if there are up to 256 colors in the input, and a - DirectColor dump file otherwise. The -directcolor flag can - be used to force a DirectColor dump. And the -pseudodepth - flag can be used to change the depth of PseudoColor dumps - from the default of 8 bits / 256 colors. - -2 See_Also - xwdtopnm, pnm, xwud - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 rasttopnm - rasttopnm - convert a Sun rasterfile into a portable anymap - -2 Synopsis - rasttopnm [rastfile] - -2 Description - Reads a Sun rasterfile as input. Produces a portable anymap - as output. The type of the output file depends on the input - file - if it's black & white, a pbm file is written, else if - it's grayscale a pgm file, else a ppm file. The program - tells you which type it is writing. - -2 See_Also - pnmtorast, pnm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 xwdtopnm - xwdtopnm - convert a X11 or X10 window dump file into a - portable anymap - -2 Synopsis - xwdtopnm [xwdfile] - -2 Description - Reads a X11 or X10 window dump file as input. Produces a - portable anymap as output. The type of the output file - depends on the input file - if it's black & white, a pbm - file is written, else if it's grayscale a pgm file, else a - ppm file. The program tells you which type it is writing. - - Using this program, you can convert anything on an X - workstation's screen into an anymap. Just display whatever - you're interested in, do an xwd, run it through xwdtopnm, - and then use pnmcut to select the part you want. - -2 Bugs - I haven't tested this tool with very many configurations, so - there are probably bugs. Please let me know if you find - any. - -2 See_Also - pnmtoxwd, pnm, xwd - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 zeisstopnm - zeisstopnm - convert a Zeiss confocal file into a portable - anymap - -2 Synopsis - zeisstopnm [-pgm | -ppm] [zeissfile] - -2 Description - Reads a Zeiss confocal file as input. Produces a portable - anymap as output. The type of the output file depends on - the input file - if it's grayscale a pgm file, else a ppm - file will be produced. The program tells you which type it - is writing. - -2 Options - -pgm Force the output to be a pgm file. - - -ppm Force the output to be a ppm file. - -2 See_Also - pnm - -2 Author - Copyright (C) 1993 by Oliver Trepte - -1 pnmgamma - pnmgamma - perform gamma correction on a portable anymap - -2 Synopsis - pnmgamma value [pnmfile] - pnmgamma redvalue greenvalue bluevalue [pnmfile] - -2 Description - Reads a portable anymap as input. Performs gamma correc- - tion, and produces a portable anymap as output. - - The arguments specify what gamma value(s) to use. A value - of 1.0 leaves the image alone, less than one darkens it, and - greater than one lightens it. - -2 See_Also - pnm - -2 Author - Copyright (C) 1991 by Bill Davidson and Jef Poskanzer. - -1 pnmhistmap - pnmhistmap - draw a histogram for a PGM or PPM file - -2 Synopsis - pnmhistmap [-black] [-white] [-max N] [-verbose] [pnmfile] - -2 Description - Reads a portable anymap as input, although bitmap (PBM) - input produces an error message and no image. Produces an - image showing a histogram of the color (or gray) values in - the input. A graymap (PGM) input produces a bitmap output. - A pixmap (PPM) input produces pixmap output with three over- - laid histograms: a red one for the red input, a green one - for the green input, and a blue one for the blue input. The - output is fixed in size: 256 pixels wide by 200 pixels high. - -2 Options - -black - Ignores the count of black pixels when scaling the his- - togram. - - -white - Ignores the count of white pixels when scaling the his- - togram. - - The -black and -white options, which can be used seperately - or together, are useful for images with a large percentage - of pixels whose value is zero or 255, which can cause the - remaining histogram data to become unreadbaly small. Note - that, for pixmap inputs, these options apply to all colors; - if, for example, the input has a large number of bright-red - areas, you will probably want to use the -white option. - - -max N - Force the scaling of the histogram to use N as the - largest-count value. This is useful for inputs with a - large percentage of single-color pixels which are not - black or white. - - -verbose - Report the progress of making the histogram, including - the largest-count value used to scale the output. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 Bugs - Assumes maxval is always 255. Images with a smaller maxval - will only use the lower-value side of the histogram. This - can be overcome either by piping the input through "pnmdepth - 255" or by cutting and scaling the lower-value side of the - histogram. Neither is a particularly elegant solution. - Should allow the output size to be specified. - -2 See_Also - pgmhist(1), ppmhist(1), pgm(5), ppm(5) - -2 Author - Wilson H. Bent. Jr. (whb@usc.edu). - -1 pnmnlfilt - pnmnlfilt - non-linear filters: smooth, alpha trim mean, - optimal estimation smoothing, edge enhancement. - -2 Synopsis - pnmnlfilt alpha radius [pnmfile] - -2 Description - This is something of a swiss army knife filter. It has 3 - distinct operating modes. In all of the modes each pixel in - the image is examined and processed according to it and its - surrounding pixels values. Rather than using the 9 pixels in - a 3x3 block, 7 hexagonal area samples are taken, the size of - the hexagons being controlled by the radius parameter. A - radius value of 0.3333 means that the 7 hexagons exactly fit - into the center pixel (ie. there will be no filtering - effect). A radius value of 1.0 means that the 7 hexagons - exactly fit a 3x3 pixel array. - - Alpha trimmed mean filter. (0.0 <= alpha - The value of the center pixel will be replaced by the mean - of the 7 hexagon values, but the 7 values are sorted by size - and the top and bottom alpha portion of the 7 are excluded - from the mean. This implies that an alpha value of 0.0 - gives the same sort of output as a normal convolution (ie. - averaging or smoothing filter), where radius will determine - the "strength" of the filter. A good value to start from for - subtle filtering is alpha = 0.0, radius = 0.55 For a more - blatant effect, try alpha 0.0 and radius 1.0 - - An alpha value of 0.5 will cause the median value of the 7 - hexagons to be used to replace the center pixel value. This - sort of filter is good for eliminating "pop" or single pixel - noise from an image without spreading the noise out or - smudging features on the image. Judicious use of the radius - parameter will fine tune the filtering. Intermediate values - of alpha give effects somewhere between smoothing and "pop" - noise reduction. For subtle filtering try starting with - values of alpha = 0.4, radius = 0.6 For a more blatant - effect try alpha = 0.5, radius = 1.0 - - Optimal estimation smoothing. (1.0 <= alpha - This type of filter applies a smoothing filter adaptively - over the image. For each pixel the variance of the sur- - rounding hexagon values is calculated, and the amount of - smoothing is made inversely proportional to it. The idea is - that if the variance is small then it is due to noise in the - image, while if the variance is large, it is because of - "wanted" image features. As usual the radius parameter con- - trols the effective radius, but it probably advisable to - leave the radius between 0.8 and 1.0 for the variance calcu- - lation to be meaningful. The alpha parameter sets the noise - threshold, over which less smoothing will be done. This - means that small values of alpha will give the most subtle - filtering effect, while large values will tend to smooth all - parts of the image. You could start with values like alpha = - 1.2, radius = 1.0 and try increasing or decreasing the alpha - parameter to get the desired effect. This type of filter is - best for filtering out dithering noise in both bitmap and - color images. - - Edge enhancement. (-0.1 >= alpha >= - This is the opposite type of filter to the smoothing filter. - It enhances edges. The alpha parameter controls the amount - of edge enhancement, from subtle (-0.1) to blatant (-0.9). - The radius parameter controls the effective radius as usual, - but useful values are between 0.5 and 0.9. Try starting with - values of alpha = 0.3, radius = 0.8 - - Combination use. - The various modes of pnmnlfilt can be used one after the - other to get the desired result. For instance to turn a - monochrome dithered image into a grayscale image you could - try one or two passes of the smoothing filter, followed by a - pass of the optimal estimation filter, then some subtle edge - enhancement. Note that using edge enhancement is only likely - to be useful after one of the non-linear filters (alpha - trimmed mean or optimal estimation filter), as edge enhance- - ment is the direct opposite of smoothing. - - For reducing color quantization noise in images (ie. turning - .gif files back into 24 bit files) you could try a pass of - the optimal estimation filter (alpha 1.2, radius 1.0), a - pass of the median filter (alpha 0.5, radius 0.55), and pos- - sibly a pass of the edge enhancement filter. Several passes - of the optimal estimation filter with declining alpha values - are more effective than a single pass with a large alpha - value. As usual, there is a tradeoff between filtering - effectiveness and loosing detail. Experimentation is - encouraged. - -2 References - The alpha-trimmed mean filter is based on the description in - IEEE CG&A May 1990 Page 23 by Mark E. Lee and Richard A. - Redner, and has been enhanced to allow continuous alpha - adjustment. - - The optimal estimation filter is taken from an article "Con- - verting Dithered Images Back to Gray Scale" by Allen - Stenger, Dr Dobb's Journal, November 1992, and this article - references "Digital Image Enhancement and Noise Filtering by - Use of Local Statistics", Jong-Sen Lee, IEEE Transactions on - Pattern Analysis and Machine Intelligence, March 1980. - The edge enhancement details are from pgmenhance, which - is taken from Philip R. Thompson's "xim" program, which in - turn took it from section 6 of "Digital Halftones by Dot - Diffusion", D. E. Knuth, ACM Transaction on Graphics Vol. 6, - No. 4, October 1987, which in turn got it from two 1976 - papers by J. F. Jarvis et. al. - -2 See_Also - pgmenhance, pnmconvol, pnm - -2 Bugs - Integers and tables may overflow if PPM_MAXMAXVAL is greater - than 255. - -2 Author - Graeme W. Gill graeme@labtam.oz.au - -1 pnmrotate - pnmrotate - rotate a portable anymap by some angle - -2 Synopsis - pnmrotate [-noantialias] angle [pnmfile] - -2 Description - Reads a portable anymap as input. Rotates it by the speci- - fied angle and produces a portable anymap as output. If the - input file is in color, the output will be too, otherwise it - will be grayscale. The angle is in degrees (floating - point), measured counter-clockwise. It can be negative, but - it should be between -90 and 90. Also, for rotations - greater than 45 degrees you may get better results if you - first use pnmflip to do a 90 degree rotation and then pnmro- - tate less than 45 degrees back the other direction - - The rotation algorithm is Alan Paeth's three-shear method. - Each shear is implemented by looping over the source pixels - and distributing fractions to each of the destination pix- - els. This has an "anti-aliasing" effect - it avoids jagged - edges and similar artifacts. However, it also means that - the original colors or gray levels in the image are modi- - fied. If you need to keep precisely the same set of colors, - you can use the -noantialias flag. This does the shearing - by moving pixels without changing their values. If you want - anti-aliasing and don't care about the precise colors, but - still need a limited *number* of colors, you can run the - result through ppmquant. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 References - "A Fast Algorithm for General Raster Rotation" by Alan - Paeth, Graphics Interface '86, pp. 77-81. - -2 See_Also - pnmshear, pnmflip, pnm, ppmquant - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 pnmshear - pnmshear - shear a portable anymap by some angle - -2 Synopsis - pnmshear [-noantialias] angle [pnmfile] - -2 Description - Reads a portable anymap as input. Shears it by the speci- - fied angle and produces a portable anymap as output. If the - input file is in color, the output will be too, otherwise it - will be grayscale. The angle is in degrees (floating - point), and measures this: - +-------+ +-------+ - | | |\ \ - | OLD | | \ NEW \ - | | |an\ \ - +-------+ |gle+-------+ - If the angle is negative, it shears the other way: - +-------+ |-an+-------+ - | | |gl/ / - | OLD | |e/ NEW / - | | |/ / - +-------+ +-------+ - The angle should not get too close to 90 or -90, or the - resulting anymap will be unreasonably wide. - - The shearing is implemented by looping over the source pix- - els and distributing fractions to each of the destination - pixels. This has an "anti-aliasing" effect - it avoids - jagged edges and similar artifacts. However, it also means - that the original colors or gray levels in the image are - modified. If you need to keep precisely the same set of - colors, you can use the -noantialias flag. This does the - shearing by moving pixels without changing their values. If - you want anti-aliasing and don't care about the precise - colors, but still need a limited *number* of colors, you can - run the result through ppmquant. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnmrotate, pnmflip, pnm, ppmquant - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 tifftopnm - tifftopnm - convert a TIFF file into a portable anymap - -2 Synopsis - tifftopnm [-headerdump] tifffile - -2 Description - Reads a TIFF file as input. Produces a portable anymap as - output. The type of the output file depends on the input - file - if it's black & white, a pbm file is written, else if - it's grayscale a pgm file, else a ppm file. The program - tells you which type it is writing. - -2 Options - -headerdump - Dump TIFF file information to stderr. This information - may be useful in debugging TIFF file conversion prob- - lems. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - pnmtotiff, pnm - -2 Bugs - This program is not self-contained. To use it you must - fetch the TIFF Software package listed in the OTHER.SYSTEMS - file and configure PBMPLUS to use libtiff. See PBMPLUS's - Makefile for details on this configuration. - -2 Author - Derived by Jef Poskanzer from tif2ras.c, which is Copyright - (c) 1990 by Sun Microsystems, Inc. Author: Patrick J. - Naughton (naughton@wind.sun.com). - -1 pnmtotiff - pnmtotiff - convert a a portable anymap into a TIFF file - -2 Synopsis - pnmtotiff [-none|-packbits| -lzw|-g3|-g4] [-2d] [-fill] [- - predictor n] [-msb2lsb|-lsb2msb] [-rowsperstrip n] [pnmfile] - -2 Description - Reads a portable anymap as input. Produces a TIFF file as - output. - -2 Options - By default, pnmtotiff creates a TIFF file with LZW compres- - sion. This is your best bet most of the time. However, - some TIFF readers can't deal with it. If you want to try - another compression scheme or tweak some of the other even - more obscure output options, there are a number of flags to - play with. - - The -none, -packbits, -lzw, -g3, and -g4 options are used to - override the default and set the compression scheme used in - creating the output file. The CCITT Group 3 and Group 4 - compression algorithms can only be used with bilevel data. - The -2d and -fill options are meaningful only with Group 3 - compression: -2d requests 2-dimensional encoding, while - - fill requests that each encoded scanline be zero-filled to a - byte boundry. The -predictor option is only meaningful with - LZW compression: a predictor value of 2 causes each scanline - of the output image to undergo horizontal differencing - before it is encoded; a value of 1 forces each scanline to - be encoded without differencing. By default, pnmtotiff - creates a TIFF file with msb-to-lsb fill order. The - - msb2lsb and -lsb2msb options are used to override the - default and set the fill order used in creating the file. - The -rowsperstrip option can be used to set the number of - rows (scanlines) in each strip of data in the output file. - By default, the output file has the number of rows per strip - set to a value that will ensure each strip is no more than 8 - kilobytes long. - -2 Bugs - This program is not self-contained. To use it you must - fetch the TIFF Software package listed in the OTHER.SYSTEMS - file and configure PBMPLUS to use libtiff. See PBMPLUS's - Makefile for details on this configuration. - -2 See_Also - tifftopnm, pnm - -2 Author - Derived by Jef Poskanzer from ras2tiff.c, which is Copyright - (c) 1990 by Sun Microsystems, Inc. Author: Patrick J. - Naughton (naughton@wind.sun.com). - -1 libpnm - libpnm - functions to support portable anymap programs - -2 Synopsis - #include <pnm.h> - cc ... libpnm.a libppm.a libpgm.a libpbm.a - - -2 Description - TYPES AND CONSTANTS - typedef ... xel; - typedef ... xelval; - #define PNM_MAXMAXVAL ... - extern xelval pnm_pbmmaxval; - - Each xel contains three xelvals, each of which should con- - tain only the values between 0 and PNM_MAXMAXVAL. - pnm_pbmmaxval is the maxval used when a PNM program reads a - PBM file. Normally it is 1; however, for some programs, a - larger value gives better results. - - XEL MANIPULATIONS - xelval PNM_GET1( xel x ) - - This macro extracts a single value from an xel, when you - know it's from a PBM or PGM file. When it's from a PPM - file, use PPM_GETR(), PPM_GETG(), and PPM_GETB(). - - void PNM_ASSIGN1( xel x, xelval v ) - - This macro assigns a single value to an xel, when you know - it's from a PBM or PGM file. When it's from a PPM file, use - PPM_ASSIGN(). - - int PNM_EQUAL( xel x, xel y ) - - This macro checks two xels for equality. - - int PNM_FORMAT_TYPE( int format ) - - For distinguishing different file types. - - INITIALIZATION - void pnm_init( int* argcP, char* argv[] ) - - All PNM programs must call this routine. - - MEMORY MANAGEMENT - xel** pnm_allocarray( int cols, int rows ) - - Allocate an array of xels. - xel* pnm_allocrow( int cols ) - - Allocate a row of the given number of xels. - - void pnm_freearray( xel** xels, int rows ) - - Free the array allocated with pnmllocarray() containing - the given number of rows. - - void pnm_freerow( xel* xelrow ) - - Free a row of xels. - - READING FILES - void pnm_readpnminit( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP ) - - Read the header from a PNM file, filling in the rows, cols, - maxval and format variables. - - void pnm_readpnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format ) - - Read a row of xels into the xelrow array. Format, cols, and - maxval were filled in by pnm_readpnminit(). - - xel** pnm_readpnm( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP ) - - Read an entire anymap file into memory, returning the allo- - cated array and filling in the rows, cols, maxval, and for- - mat variables. This function combines pnm_readpnminit(), - pnm_allocarray() and pnm_readpnmrow(). Unlike the - equivalent functions in PBM, PGM, and PPM, it returns the - format so you can tell what type the file is. - - WRITING FILES - void pnm_writepnminit( FILE* fp, int cols, int rows, xelval maxval, int format, int forceplain ) - - Write the header for a portable anymap file. Unlike the - equivalent functions in PBM, PGM, and PPM, you have to - specify the output type. The forceplain flag forces a - plain-format file to be written, as opposed to a raw-format - one. - - void pnm_writepnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format, int forceplain ) - - Write a row from a portable anymap. - - void pnm_writepnm( FILE* fp, xel** xels, int cols, int rows, xelval maxval, int format, int forceplain ) - - Write the header and all data for a portable anymap. This - function combines pnm_writepnminit() and pnm_writepnmrow(). - - FORMAT PROMOTION - void pnm_promoteformatrow( xel* xelrow, int cols, xelval maxval, int format, xelval newmaxval, int newformat ) - - Promote a row of xels from one maxval and format to a new - set. Used when combining multiple anymaps of different - types - just take the max of the maxvals and the max of the - formats, and promote them all to that. - - void pnm_promoteformat( xel** xels, int cols, int rows, xelval maxval, int format, xelval newmaxval, int newformat ) - - Promote an entire anymap. - - XEL MANIPULATION - xel pnm_whitexel( xelval maxval, int format ) - xel pnm_blackxel( xelval maxval, int format ) - - Return a white or black xel for the given maxval and format. - - void pnm_invertxel( xel* x, xelval maxval, int format ) - - Invert an xel. - - xel pnm_backgroundxelrow( xel* xelrow, int cols, xelval maxval, int format ) - - Figure out an appropriate background xel based on this row. - - xel pnm_backgroundxel( xel** xels, int cols, int rows, xelval maxval, int format ) - - Figure out a background xel based on an entire anymap. This - can do a slightly better job than pnm_backgroundxelrow(). - -2 See_Also - pbm, pgm, ppm - -2 Author - Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer. - -1 pnm - pnm - portable anymap file format - -2 Description - The pnm programs operate on portable bitmaps, graymaps, and - pixmaps, produced by the pbm, pgm, and ppm segments. There - is no file format associated with pnm itself. - -2 See_Also - anytopnm, rasttopnm, tifftopnm, xwdtopnm, pnmtops, pnmtorast, - pnmtotiff, pnmtoxwd, pnmar- ith, pnmcat, pnmconvol, pnmcrop, pnmcut, - pnmdepth, pnmenlarge, pnmfile, pnmflip, pnmgamma, pnmindex, - pnminvert, pnmmargin, pnmnoraw, pnmpaste, pnmrotate, pnmscale, - pnmshear, pnmsmooth, pnmtile, ppm, pgm, pbm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. -1 bmptoppm - bmptoppm - convert a BMP file into a portable pixmap - -2 Synopsis - bmptoppm [bmpfile] - -2 Description - Reads a Microsoft Windows or OS/2 BMP file as input. Pro- - duces a portable pixmap as output. - -2 See_Also - ppmtobmp, ppm - -2 Author - Copyright (C) 1992 by David W. Sanderson. - -1 gouldtoppm - gouldtoppm - convert Gould scanner file into a portable pix- - map - -2 Synopsis - gouldtoppm [gouldfile] - -2 Description - Reads a file produced by the Gould scanner as input. Pro- - duces a portable pixmap as output. - -2 See_Also - ppm - -2 Author - Copyright(C) 1990 by Stephen Paul Lesniewski - -1 ilbmtoppm - ilbmtoppm - convert an ILBM file into a portable pixmap - -2 Synopsis - ilbmtoppm [-verbose] [ILBMfile] - -2 Description - Reads an IFF ILBM file as input. Produces a portable pixmap - as output. Supported ILBM types are: - - Normal ILBMs with 1-16 planes. - - Amiga Extra-Halfbrite (EHB) - - Amiga Hold-and-modify (HAM) with 3-16 planes. - - 24 bit. - - Color map (BMHD + CMAP chunk only, nPlanes = 0). - - Unofficial direct color. - 1-16 planes for each color component. - - Chunks used: - BMHD, CMAP, CAMG (only HAM & EHB flags used), BODY - unofficial DCOL chunk to identify direct color ILBM - - Chunks ignored: - GRAB, DEST, SPRT, CRNG, CCRT, CLUT, DPPV, DRNG, EPSF - - Other chunks (ignored but displayed in verbose mode): - NAME, AUTH, (c), ANNO, DPI - - Unknown chunks are skipped. - -2 Options - -verbose - Give some informaton about the ILBM file. - -2 Bugs - Probably. - -2 References - Amiga ROM Kernel Reference Manual - Devices (3rd Ed.) - Addison Wesley, ISBN 0-201-56775-X - -2 See_Also - ppm(5), ppmtoilbm(1) - -2 Authors - Copyright (C) 1989 by Jef Poskanzer. - Modified June 1993 by Ingo Wilken - (Ingo.Wilken@informatik.uni-oldenburg.de) - -1 imgtoppm - imgtoppm - convert an Img-whatnot file into a portable pix- - map - -2 Synopsis - imgtoppm [imgfile] - -2 Description - Reads an Img-whatnot file as input. Produces a portable - pixmap as output. The Img-whatnot toolkit is available for - FTP on venera.isi.edu, along with numerous images in this - format. - -2 See_Also - ppm - -2 Author - Based on a simple conversion program posted to comp.graphics - by Ed Falk. - - Copyright (C) 1989 by Jef Poskanzer. - -1 mtvtoppm - mtvtoppm - convert output from the MTV or PRT ray tracers - into a portable pixmap - -2 Synopsis - mtvtoppm [mtvfile] - -2 Description - Reads an input file from Mark VanDeWettering's MTV ray - tracer. Produces a portable pixmap as output. - - The PRT raytracer also produces this format. - -2 See_Also - ppm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 pcxtoppm - pcxtoppm - convert a PCX file into a portable pixmap - -2 Synopsis - pcxtoppm [pcxfile] - -2 Description - Reads a PCX file as input. Produces a portable pixmap as - output. - -2 See_Also - ppmtopcx, ppm - -2 Author - Copyright (C) 1990 by Michael Davidson. - -1 pgmtoppm - pgmtoppm - colorize a portable graymap into a portable pix- - map - -2 Synopsis - pgmtoppm colorspec [pgmfile] - pgmtoppm colorspec1-colorspec2 [pgmfile] - pgmtoppm -map mapfile [pgmfile] - -2 Description - Reads a portable graymap as input. Colorizes it by multi- - plying the the gray values by specified color or colors, and - produces a portable pixmap as output. - - If only one color is specified, black in the pgm file stays - black and white in the pgm file turns into the specified - color in the ppm file. If two colors (separated by a dash) - are specified, then black gets mapped to the first color and - white gets mapped to the second. - - The color can be specified in five ways: - - o A name, assuming that a pointer to an X11-style color - names file was compiled in. - - o An X11-style hexadecimal specifier: rgb:r/g/b, where r - g and b are each 1- to 4-digit hexadecimal numbers. - - o An X11-style decimal specifier: rgbi:r/g/b, where r g - and b are floating point numbers between 0 and 1. - - o For backwards compatibility, an old-X11-style hexade- - cimal number: #rgb, #rrggbb, #rrrgggbbb, or - #rrrrggggbbbb. - - o For backwards compatibility, a triplet of numbers - separated by commas: r,g,b, where r g and b are float- - ing point numbers between 0 and 1. (This style was - added before MIT came up with the similar rgbi style.) - - Also, the -map flag lets you specify an entire colormap to - be used. The mapfile is just a ppm file; it can be any - shape, all that matters is the colors in it and their order. - In this case, black gets mapped into the first color in the - map file, and white gets mapped to the last. - -2 See_Also - rgb3toppm, ppmtopgm, ppmtorgb3, ppm, pgm - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 pi1toppm - pi1toppm - convert an Atari Degas .pi1 into a portable pix- - map - -2 Synopsis - pi1toppm [pi1file] - -2 Description - Reads an Atari Degas .pi1 file as input. Produces a port- - able pixmap as output. - -2 See_Also - ppmtopi1, ppm, pi3topbm, pbmtopi3 - -2 Author - Copyright (C) 1991 by Steve Belczyk (seb3@gte.com) and Jef - Poskanzer. - -1 picttoppm - picttoppm - convert a Macintosh PICT file into a portable - pixmap - -2 Synopsis - picttoppm [-verbose] [-fullres] [-noheader] [pictfile] - -2 Description - Reads a PICT file (version 1 or 2) and outputs a portable - pixmap. Useful as the first step in converting a scanned - image to something that can be displayed on Unix. - -2 Options - -fullres - Force any images in the PICT file to be output with at - least their full resolution. A PICT file may indicate - that a contained image is to be scaled down before out- - put. This option forces images to retain their sizes - and prevent information loss. - - -noheader - Do not skip the 512 byte header that is present on all - PICT files. This is useful when you have PICT data - that was not stored in the data fork of a PICT file. - - -verbose - Turns on verbose mode which prints a a whole bunch of - information that only picttoppm hackers really care - about. - -2 Bugs - The PICT file format is a general drawing format. picttoppm - only supports a small subset of its operations but is still - very useful for files produced by scanning software. In - particular, text added to a scanned image will be silently - ignored. - -2 See_Also - Inside Macintosh volume 5, ppmtopict, ppm - -2 Author - Copyright 1989 George Phillips - -1 pjtoppm - pjtoppm - convert an HP PaintJet file to a portable pixmap - -2 Synopsis - pjtoppm [paintjet] - -2 Description - Reads an HP PaintJet file as input and converts it into a - portable pixmap. This was a quick hack to save some trees, - and it only handles a small subset of the paintjet commands. - In particular, it will only handle enough commands to con- - vert most raster image files. - -REFERENCES - HP PaintJet XL Color Graphics Printer User's Guide - -2 See_Also - ppmtopj - -2 Author - Copyright (C) 1991 by Christos Zoulas. - -1 ppm3d - ppm3d - convert two portable pixmap into a red/blue 3d - glasses pixmap - -2 Synopsis - ppm3d leftppmfile rightppmfile [horizontal offset] - -2 Description - Reads two portable pixmaps as input. Produces a portable - pixmap as output, with the images overlapping by - horizontal offset - - pixels in blue/red format. - - horizontal offset defaults to 30 pixels. Pixmaps MUST be - the same size. - -2 See_Also - ppm(5) - -2 Author - Copyright (C) 1993 by David K. Drum. - -1 ppmbrighten - ppmbrighten - change an images Saturation and Value from an - HSV map - -2 Synopsis - ppmbrighten [-n] [-s <+- saturation>] [-v <+- value>] - <ppmfile> - -2 Description - Reads a portable pixmap as input. Converts the image from - RGB space to HSV space and changes the Value by <+- value> - as a percentage. Likewise with the Saturation. Doubling - the Value would involve - - ppmbrighten -v 100 - - to add 100 percent to the Value. - - The 'n' option normalizes the Value to exist between 0 and 1 - (normalized). - -2 See_Also - pgmnorm, ppm - -2 Notes - This program does not change the number of colors. - -2 Author - Copyright (C) 1990 by Brian Moffet Copyright (C) 1989 by Jef - Poskanzer. - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright - notice and this permission notice appear in supporting docu- - mentation. This software is provided "as is" without - express or implied warranty. - -1 ppmchange - ppmchange - change all pixels of one color to another in a - portable pixmap - -2 Synopsis - ppmchange colorspec1 colorspec2 [ppmfile] - -2 Description - Reads a portable pixmap as input. Changes all pixels of - colorspec1 to colorspec2, leaving all others unchanged. - - The color can be specified in five ways: - - o A name, assuming that a pointer to an X11-style color - names file was compiled in. - - o An X11-style hexadecimal specifier: rgb:r/g/b, where r - g and b are each 1- to 4-digit hexadecimal numbers. - - o An X11-style decimal specifier: rgbi:r/g/b, where r g - and b are floating point numbers between 0 and 1. - - o For backwards compatibility, an old-X11-style hexade- - cimal number: #rgb, #rrggbb, #rrrgggbbb, or - #rrrrggggbbbb. - - o For backwards compatibility, a triplet of numbers - separated by commas: r,g,b, where r g and b are float- - ing point numbers between 0 and 1. (This style was - added before MIT came up with the similar rgbi style.) - -2 See_Also - pgmtoppm(1), ppm(5) - -2 Author - Wilson H. Bent. Jr. (whb@usc.edu) - -1 ppmdim - ppmdim - dim a portable pixmap down to total blackness - -2 Synopsis - ppmdim dimfactor [ppmfile] - -2 Description - Reads a portable pixmap as input. Diminishes its brightness by - the specified dimfactor down to total blackness. The dimfactor - may be in the range from 0.0 (total blackness, deep night, nada, - null, nothing) to 1.0 (original picture's brightness). - - As pnmgamma does not do the brightness correction in the way I - wanted it, this small program was written. - - ppmdim is similar to ppmbrighten , but not exactly the same. - -2 See_Also - ppm(5), ppmflash(1), pnmgamma(1), ppmbrighten(1) - -2 Author - Copyright (C) 1993 by Frank Neumann - -1 ppmdist - ppmdist - simplistic grayscale assignment for machine generated, - color images - -2 Synopsis - ppmdist [-intensity|-frequency] [ppmfile] - -2 Description - Reads a portable pixmap as input, performs a simplistic - grayscale assignment intended for use with grayscale or bit- - map printers. - - Often conversion from ppm to pgm will yield an image with - contrast too low for good printer output. The program max- - imizes contrast between the gray levels output. - - A ppm input of n colors is read, and a pgm of n gray levels - is written. The gray levels take on the values 0..n-1, - while maxval takes on n-1. - - The mapping from color to stepped grayscale can be performed - in order of input pixel intensity, or input pixel frequency - (number of repetitions). - -2 Options - Helpful only for images with a very small number of colors. - Perhaps should have been an option to ppmtopgm. - -2 See_Also - ppmtopgm, ppmhist, ppm - -2 Author - Copyright (C) 1993 by Dan Stromberg. - -1 ppmdither - ppmdither - ordered dither for color images - -2 Synopsis - ppmdither [-dim dimension] [-red shades] [-green shades] [- - blue shades] [ppmfile] - -2 Description - Reads a portable pixmap as input, and applies dithering to - it to reduce the number of colors used down to the specified - number of shades for each primary. The default number of - shades is red=5, green=9, blue=5, for a total of 225 colors. - To convert the image to a binary rgb format suitable for - color printers, use -red 2 -green 2 -blue 2. The maximum - number of colors that can be used is 256 and can be computed - as the product of the number of red, green and blue shades. - -2 Options - -dim dimension - The size of the dithering matrix. Must be a - power of 2. - - -red shades The number of red shades to be used; minimum - of 2. - - -green shades The number of green shades to be used; minimum - of 2. - - -blue shades The number of blue shades to be used; minimum - of 2. - -2 See_Also - pnmdepth, ppmquant, ppm - -2 Author - Copyright (C) 1991 by Christos Zoulas. - -1 ppmflash - ppmflash - brighten a picture up to complete white-out - -2 Synopsis - ppmflash flashfactor [ppmfile] - -2 Description - Reads a portable pixmap as input. Increases its brightness by - the specified flashfactor up to a total white-out image. The - flashfactor may be in the range from 0.0 (original picture's - brightness) to 1.0 (full white-out, The Second After). - - As pnmgamma does not do the brightness correction in the way I - wanted it, this small program was written. - - This program is similar to ppmbrighten, but not exactly the same. - -2 See_Also - ppm(5), ppmdim(1), pnmgamma(1), ppmbrighten(1) - -2 Author - Copyright (C) 1993 by Frank Neumann - -1 ppmhist - ppmhist - print a histogram of a portable pixmap - -2 Synopsis - ppmhist [ppmfile] - -2 Description - Reads a portable pixmap as input. Generates a histogram of - the colors in the pixmap. - -2 See_Also - ppm, pgmhist - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 ppmmake - ppmmake - create a pixmap of a specified size and color - -2 Synopsis - ppmmake color width height - -2 Description - Produces a portable pixmap of the specified color, width, - and height. - - The color can be specified in five ways: - - o A name, assuming that a pointer to an X11-style color - names file was compiled in. - - o An X11-style hexadecimal specifier: rgb:r/g/b, where r - g and b are each 1- to 4-digit hexadecimal numbers. - - o An X11-style decimal specifier: rgbi:r/g/b, where r g - and b are floating point numbers between 0 and 1. - - o For backwards compatibility, an old-X11-style hexade- - cimal number: #rgb, #rrggbb, #rrrgggbbb, or - #rrrrggggbbbb. - - o For backwards compatibility, a triplet of numbers - separated by commas: r,g,b, where r g and b are float- - ing point numbers between 0 and 1. (This style was - added before MIT came up with the similar rgbi style.) - -2 See_Also - ppm, pbmmake - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 ppmmix - ppmmix - blend together two portable pixmaps - -2 Synopsis - ppmmix fadefactor ppmfile1 ppmfile2 - -2 Description - Reads two portable pixmaps as input. Mixes them together using - the specified fade factor. The fade factor may be in the range - from 0.0 (only ppmfile1's image data) to 1.0 (only ppmfile2's - image data). Anything in between gains a smooth blend between - the two images. - - The two pixmaps must have the same size. - -2 See_Also - ppm(5) - -2 Author - Copyright (C) 1993 by Frank Neumann - -1 ppmquant - ppmquant - quantize the colors in a portable pixmap down to a - specified number - -2 Synopsis - ppmquant [-floyd|-fs] ncolors [ppmfile] - ppmquant [-floyd|-fs] -map mapfile [ppmfile] - -2 Description - Reads a portable pixmap as input. Chooses ncolors colors to - best represent the image, maps the existing colors to the - new ones, and writes a portable pixmap as output. - - The quantization method is Heckbert's "median cut". - - Alternately, you can skip the color-choosing step by speci- - fying your own set of colors with the -map flag. The map- - file is just a ppm file; it can be any shape, all that - matters is the colors in it. For instance, to quantize down - to the 8-color IBM TTL color set, you might use: - P3 - 8 1 - 255 - 0 0 0 - 255 0 0 - 0 255 0 - 0 0 255 - 255 255 0 - 255 0 255 - 0 255 255 - 255 255 255 - If you want to quantize one pixmap to use the colors in - another one, just use the second one as the mapfile. You - don't have to reduce it down to only one pixel of each - color, just use it as is. - - The -floyd/-fs flag enables a Floyd-Steinberg error diffu- - sion step. Floyd-Steinberg gives vastly better results on - images where the unmodified quantization has banding or - other artifacts, especially when going to a small number of - colors such as the above IBM set. However, it does take - substantially more CPU time, so the default is off. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 References - "Color Image Quantization for Frame Buffer Display" by Paul - Heckbert, SIGGRAPH '82 Proceedings, page 297. - -2 See_Also - ppmquantall, pnmdepth, ppmdither, ppm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 ppmrelief - ppmrelief - run a Laplacian relief filter on a portable pixmap - -2 Synopsis - ppmrelief [ppmfile] - -2 Description - Reads a portable pixmap as input. Does a Laplacian relief - filter, and writes a portable pixmap as output. - - The Laplacian relief filter is described in "Beyond Photog- - raphy" by Holzmann, equation 3.19. It's a sort of edge- - detection. - -2 See_Also - pgmbentley, pgmoil, ppm - -2 Author - Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com) - -1 ppmshift - ppmshift - shift lines of a portable pixmap left or right by a - random amount - -2 Synopsis - ppmshift shift [ppmfile] - -2 Description - Reads a portable pixmap as input. Shifts every row of image data - to the left or right by a certain amount. The 'shift' parameter - determines by how many pixels a row is to be shifted at most. - - Another one of those effects I intended to use for MPEG tests. - Unfortunately, this program will not help me here - it creates - too random patterns to be used for animations. Still, it might - give interesting results on still images. - -2 Example - Check this out: Save your favourite model's picture from - something like alt.binaries.pictures.supermodels (ok, or from any - other picture source), convert it to ppm, and process it e.g. - like this, assuming the picture is 800x600 pixels: - - # take the upper half, and leave it like it is - pnmcut 0 0 800 300 cs.ppm >upper.ppm - - # take the lower half, flip it upside down, dim it and distort - it a little - pnmcut 0 300 800 300 cs.ppm | pnmflip -tb | ppmdim 0.7 | - ppmshift 10 >lower.ppm - - # and concatenate the two pieces - pnmcat -tb upper.ppm lower.ppm >newpic.ppm The resulting - picture looks like the image being reflected on a water surface - with slight ripples. - -2 See_Also - ppm(5), pnmcut(1), pnmflip(1), ppmdim(1), pnmcat(1) - -2 Author - Copyright (C) 1993 by Frank Neumann - -1 ppmspread - ppmspread - displace a portable pixmap's pixels by a random - amount - -2 Synopsis - ppmspread amount [ppmfile] - -2 Description - Reads a portable pixmap as input. Moves every pixel around a bit - relative to its original position. amount determines by how many - pixels a pixel is to be moved around at most. - - Pictures processed with this filter will seem to be somewhat - dissolved or unfocussed (although they appear more coarse than - images processed by something like pnmconvol ). - -2 See_Also - ppm(5), pnmconvol(1) - -2 Author - Copyright (C) 1993 by Frank Neumann - -1 ppmtoacad - ppmtoacad - convert portable pixmap to AutoCAD database or slide - -2 Synopsis - ppmtoacad [-dxb] [-poly] [-background colour] [-white] [- - aspect ratio] [-8] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces an AutoCAD(Reg.) - slide file or binary database import (.dxb) file as output. - If no ppmfile is specified, input is read from standard - input. - -2 Options - -dxb An AutoCAD binary database import (.dxb) file is writ- - ten. This file is read with the DXBIN command and, - once loaded, becomes part of the AutoCAD geometrical - database and can be viewed and edited like any other - object. Each sequence of identical pixels becomes a - separate object in the database; this can result in - very large AutoCAD drawing files. However, if you want - to trace over a bitmap, it lets you zoom and pan around - the bitmap as you wish. - - -poly - If the -dxb option is not specified, the output of - ppmtoacad is an AutoCAD slide file. Normally each row - of pixels is represented by an AutoCAD line entity. If - -poly is selected, the pixels are rendered as filled - polygons. If the slide is viewed on a display with - higher resolution than the source pixmap, this will - cause the pixels to expand instead of appearing as - discrete lines against the screen background colour. - Regrettably, this representation yields slide files - which occupy more disc space and take longer to - display. - - -background colour - Most AutoCAD display drivers can be configured to use - any available colour as the screen background. Some - users perfer a black screen background, others white, - while splinter groups advocate burnt ocher, tawny puce, - and shocking grey. Discarding pixels whose closest - AutoCAD colour representation is equal to the back- - ground colour can substantially reduce the size of the - AutoCAD database or slide file needed to represent a - bitmap. If no -background colour is specified, the - screen background colour is assumed to be black. Any - AutoCAD colour number may be specified as the screen - background; colour numbers are assumed to specify the - hues defined in the standard AutoCAD 256 colour - palette. - - -white - Since many AutoCAD users choose a white screen back- - ground, this option is provided as a short-cut. Speci- - fying -white is identical in effect to -background 7. - - -aspect ratio - If the source pixmap had non-square pixels, the ratio - of the pixel width to pixel height should be specified - as ratio. The resulting slide or .dxb file will be - corrected so that pixels on the AutoCAD screen will be - square. For example, to correct an image made for a - 320x200 VGA/MCGA screen, specify -aspect 0.8333. - - -8 Restricts the colours in the output file to the 8 RGB - shades. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 Bugs - AutoCAD has a fixed palette of 256 colours, distributed - along the hue, lightness, and saturation axes. Pixmaps - which contain many nearly-identical colours, or colours not - closely approximated by AutoCAD's palette, may be poorly - rendered. - - ppmtoacad works best if the system displaying its output - supports the full 256 colour AutoCAD palette. Monochrome, 8 - colour, and 16 colour configurations will produce less than - optimal results. - - When creating a .dxb file or a slide file with the -poly - option, ppmtoacad finds both vertical and horizontal runs of - identical pixels and consolidates them into rectangular - regions to reduce the size of the output file. This is - effective for images with large areas of constant colour but - it's no substitute for true raster to vector conversion. In - particular, thin diagonal lines are not optimised at all by - this process. - - Output files can be huge. - -2 See_Also - AutoCAD Reference Manual: Slide File Format and Binary Draw- - ing Interchange (DXB) Files, ppm - -2 Author - John Walker - Autodesk SA - Avenue des Champs-Montants 14b - CH-2074 MARIN - Suisse/Schweiz/Svizzera/Svizra/Switzerland - Usenet: kelvin@Autodesk.com - Fax: 038/33 88 15 - Voice: 038/33 76 33 - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, without any conditions or restric- - tions. This software is provided ``as is'' without express - or implied warranty. - - AutoCAD and Autodesk are registered trademarks of Autodesk, - Inc. - -1 ppmtobmp - ppmtobmp - convert a portable pixmap into a BMP file - -2 Synopsis - ppmtobmp [-windows] [-os2] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces a Microsoft Win- - dows or OS/2 BMP file as output. - -2 Options - -windows - Tells the program to produce a Microsoft Windows BMP - file. - - -os2 Tells the program to produce an OS/2 BMP file. (This - is the default.) - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - bmptoppm, ppm - -2 Author - Copyright (C) 1992 by David W. Sanderson. - -1 ppmtogif - ppmtogif - convert a portable pixmap into a GIF file - -2 Synopsis - ppmtogif [-interlace] [-sort] [-map mapfile ] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces a GIF file as - output. - -2 Options - -interlace - Tells the program to produce an interlaced GIF file. - - -sort - Produces a GIF file with a sorted color map. - - -map mapfile - - Uses the colors found in the mapfile to create the - colormap in the GIF file, instead of the colors from - ppmfile. The mapfile can be any ppm file; all that - matters is the colors in it. If the colors in ppmfile - do not match those in mapfile , they are matched to a - "best match". A (much) better result can be obtained by - using the following filter in advance: - - ppmquant -floyd -map mapfile - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - giftopnm, ppmquant, ppm - -2 Author - Based on GIFENCOD by David Rowley - <mgardi@watdcsu.waterloo.edu>. Lempel-Ziv compression based - on "compress". - - Copyright (C) 1989 by Jef Poskanzer. - -1 ppmtoicr - ppmtoicr - convert a portable pixmap into NCSA ICR format - -2 Synopsis - ppmtoicr [-windowname name] [-expand expand] [-display - display] [-rle] [ppmfile] - -2 Description - Reads a portable pixmap file as input. Produces an NCSA - Telnet Interactive Color Raster graphic file as output. If - ppmfile is not supplied, ppmtoicr will read from standard - input. - - Interactive Color Raster (ICR) is a protocol for displaying - raster graphics on workstation screens. The protocol is - implemented in NCSA Telnet for the Macintosh version 2.3. - The ICR protocol shares characteristics of the Tektronix - graphics terminal emulation protocol. For example, escape - sequences are used to control the display. - - ppmtoicr will output the appropriate sequences to create a - window of the dimensions of the input pixmap, create a - colormap of up to 256 colors on the display, then load the - picture data into the window. - - Note that there is no icrtoppm tool - this transformation is - one way. - -2 Options - -windownamename - Output will be displayed in name (Default is - to use ppmfile or "untitled" if standard input - is read.) - - -expandexpand Output will be expanded on display by factor - expand (For example, a value of 2 will cause - four pixels to be displayed for every input - pixel.) - - -displaydisplay - Output will be displayed on screen numbered - display - - -rle Use run-length encoded format for display. - (This will nearly always result in a quicker - display, but may skew the colormap.) - -2 Examples - To display a ppm file using the protocol: - ppmtoicr ppmfile - This will create a window named ppmfile on the display with - the correct dimensions for ppmfile, create and download a - colormap of up to 256 colors, and download the picture into - the window. The same effect may be achieved by the following - sequence: - ppmtoicr ppmfile > filename - cat filename - To display a GIF file using the protocol in a window titled - after the input file, zoom the displayed image by a factor - of 2, and run-length encode the data: - giftopnm giffile | ppmtoicr -w giffile -r -e 2 - -2 Bugs - The protocol uses frequent fflush calls to speed up display. - If the output is saved to a file for later display via cat, - drawing will be much slower. In either case, increasing the - Blocksize limit on the display will speed up transmission - substantially. - -2 See_Also - ppm - - NCSA Telnet for the Macintosh, University of Illinois at - Urbana-Champaign (1989) - -2 Author - Copyright (C) 1990 by Kanthan Pillay - (svpillay@Princeton.EDU), Princeton University Computing and - Information Technology. - -1 ppmtoilbm - ppmtoilbm - convert a portable pixmap into an ILBM file - -2 Synopsis - ppmtoilbm [-maxplanes|-mp N] [-fixplanes|-fp N] [-ham6|- - ham8] [-dcbits|-dcplanesrg [-normal|-hamif|-hamforce - - dcif|-dcforce|-cmaponly] [-ecs|-aga] [-mapppmfile] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces an ILBM file as - output. Supported ILBM types are: - - Normal ILBMs with 1-16 planes. - - Amiga Hold-and-modify (HAM) with 3-16 planes. - - 24 bit. - - Color map (BMHD + CMAP chunk only, nPlanes = 0). - - Unofficial direct color. - 1-16 planes for each color component. - - Chunks written: - BMHD, CMAP, CAMG (only for HAM), BODY (not for colormap - files) unofficial DCOL chunk for direct color ILBM - -2 Options - Options marked with (*) can be prefixed with a "no", e.g. - "-nohamif". All options can be abbreviated to their shortest - unique prefix. - - -maxplanes | -mp n - (default 5, minimum 1, maximum 16) Maximum planes to - write in a normal ILBM. If the pixmap does not fit - into <n> planes, ppmtoilbm writes a HAM file (if -hamif - is used), a 24bit file (if -24if is used) or a direct - color file (if -dcif is used) or aborts with an error. - - -fixplanes | -fp n - (min 1, max 16) If a normal ILBM is written, it will - have exactly <n> planes. - - -hambits | -hamplanes n - (default 6, min 3, max 16) Select number of planes for - HAM picture. The current Amiga hardware supports 6 and - 8 planes, so for now you should only use this values. - - -normal (default) - Turns off -hamif/-24if/-dcif, -hamforce/-24force/- - dcforce and -cmaponly. - - -hamif (*) - - -24if (*) - - -dcif (*) - Write a HAM/24bit/direct color file if the pixmap does - not fit into <maxplanes> planes. - - -hamforce (*) - - -24force (*) - - -dcforce (*) - Write a HAM/24bit/direct color file. - - -dcbits | -dcplanes r g b - (default 5, min 1, max 16). Select number of bits for - red, green & blue in a direct color ILBM. - - -ecs (default) - Shortcut for: -hamplanes 6 -maxplanes 5 - - -aga - - Shortcut for: -hamplanes 8 -maxplanes 8 - - -ham6 - - Shortcut for: -hamplanes 6 -hamforce - - -ham8 - Shortcut for: -hamplanes 8 -hamforce - - -map ppmfile - Write a normal ILBM using the colors in <ppmfile> as - the colormap. The colormap file also determines the - number of planes, a -maxplanes or -fixplanes option is - ignored. - - -cmaponly - Write a colormap file: only BMHD and CMAP chunks, no - BODY chunk, nPlanes = 0. - -2 Bugs - Needs a real colormap selection algorithm for HAM pictures, - instead of using a grayscale colormap. - -2 References - Amiga ROM Kernel Reference Manual - Devices (3rd Ed.) - Addison Wesley, ISBN 0-201-56775-X - -2 See_Also - ppm(5), ilbmtoppm(1) - -2 Authors - Copyright (C) 1989 by Jef Poskanzer. - Modified August 1993 by Ingo Wilken - (Ingo.Wilken@informatik.uni-oldenburg.de) - -1 ppmtomitsu - ppmtomitsu - convert a portable pixmap to a Mitsubishi S340-10 file - -2 Synopsis - ppmtomitsu [-sharpness val] [-enlarge val] [-media string] - [-copy val] [-dpi300] [-tiny] [ppmfile] - -2 Description - Reads a portable pixmap as input and converts it into a format - suitable to be printed by a Mitsubishi S340-10 printer, or any - other Mitsubishi color sublimation printer. - - The Mitsubishi S340-10 Color Sublimation printer supports 24bit - color. Images of the available sizes take so long to transfer that - there is a fast method, employing a lookuptable, that ppmtomitsu - will use if there is a maximum of 256 colors in the pixmap. - ppmtomitsu will try to position your image to the center of the - paper, and will rotate your image for you if xsize is larger than - ysize. If your image is larger than the media allows, ppmtomitsu - will quit with an error message. (We decided that the media were - too expensive to have careless users produce misprints.) Once data - transmission has started, the job can't be stopped in a sane way - without resetting the printer. The printer understands putting - together images in the printers memory; ppmtomitsu doesn't utilize - this as pnmcat etc provide the same functionality and let you view - the result on-screen, too. The S340-10 is the lowest common - denominator printer; for higher resolution printers there's the - dpi300 option. The other printers also support higher values for - enlarge eg., but I don't think that's essential enough to warrant a - change in the program. - - -sharpness 1-4 - 'sharpness' designation. Default is to use the current - sharpness. - - -enlarge 1-3 - Enlarge by a factor; Default is 1 (no enlarge) - - -media A, A4, AS, A4S - Designate the media you're using. Default is 1184 x 1350, - which will fit on any media. A is 1216 x 1350, A4 is 1184 x - 1452, AS is 1216 x 1650 and A4S is 1184 x 1754. A warning: - If you specify a different media than the printer currently - has, the printer will wait until you put in the correct media - or switch it off. - - -copy 1-9 - The number of copies to produce. Default is 1. - - -dpi300 - Double the number of allowed pixels for a S3600-30 Printer in - S340-10 compatibility mode. (The S3600-30 has 300 dpi). - - -tiny - Memory-safing, but always slow. The printer will get the data - line-by-line in 24bit. It's probably a good idea to use this - if your machine starts paging a lot without this option. - -2 References - Mitsubishi Sublimation Full Color Printer S340-10 Specifications of - Parallel Interface LSP-F0232F - -2 See_Also - ppmquant(1), pnmscale(1), ppm(5) - -2 Bugs - We didn't find any - yet. (Besides, they're called features anyway - :-) If you should find one, my email-adress is below. - -2 Author - Copyright (C) 1992, 93 by S.Petra Zeidler, MPIfR Bonn, Germany. - (spz@specklec.mpifr-bonn.mpg.de) - -1 ppmtopcx - ppmtopcx - convert a portable pixmap into a PCX file - -2 Synopsis - ppmtopcx [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces a PCX file as - output. - -2 See_Also - pcxtoppm, ppm - -2 Author - Copyright (C) 1990 by Michael Davidson. - -1 ppmtopgm - ppmtopgm - convert a portable pixmap into a portable graymap - -2 Synopsis - ppmtopgm [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces a portable gray- - map as output. The quantization formula used is .299 r + - .587 g + .114 b. - - Note that although there is a pgmtoppm program, it is not - necessary for simple conversions from pgm to ppm, because - any ppm program can read pgm (and pbm ) files automagically. - pgmtoppm is for colorizing a pgm file. Also, see ppmtorgb3 - for a different way of converting color to gray. - -2 QUOTE - Cold-hearted orb that rules the night - Removes the colors from our sight - Red is gray, and yellow white - But we decide which is right - And which is a quantization error. - -2 See_Also - pgmtoppm, ppmtorgb3, rgb3toppm, ppm, pgm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 ppmtopi1 - ppmtopi1 - convert a portable pixmap into an Atari Degas - .pi1 file - -2 Synopsis - ppmtopi1 [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces an Atari Degas - .pi1 file as output. - -2 See_Also - pi1toppm, ppm, pbmtopi3, pi3topbm - -2 Author - Copyright (C) 1991 by Steve Belczyk (seb3@gte.com) and Jef - Poskanzer. - -1 ppmtopict - ppmtopict - convert a portable pixmap into a Macintosh PICT - file - -2 Synopsis - ppmtopict [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces a Macintosh PICT - file as output. - - The generated file is only the data fork of a picture. You - will need a program such as mcvert to generate a Macbinary - or a BinHex file that contains the necessary information to - identify the file as a PICT file to MacOS. - - Even though PICT supports 2 and 4 bits per pixel, ppmtopict - always generates an 8 bits per pixel file. - -2 Bugs - The picture size field is only correct if the output is to a - file since writing into this field requires seeking back- - wards on a file. However the PICT documentation seems to - suggest that this field is not critical anyway since it is - only the lower 16 bits of the picture size. - -2 See_Also - picttoppm, ppm, mcvert - -2 Author - Copyright (C) 1990 by Ken Yap <ken@cs.rocester.edu>. - -1 ppmtopj - ppmtopj - convert a portable pixmap to an HP PaintJet file - -2 Synopsis - ppmtopj [-gamma val] [-xpos val] [-ypos val] [-back - dark|lite] [-rle] [-center] [-render - none|snap|bw|dither|diffuse|monodither|monodiffuse|clusterdither|monoclusterdither] - [ppmfile] - -2 Description - Reads a portable pixmap as input and converts it into a for- - mat suitable to be printed by an HP PaintJet printer. - - For best results, the input file should be in 8-color RGB - form; i.e. it should have only the 8 binary combinations of - full-on and full-off primaries. You could get this by send- - ing the input file through ppmquant -map with a map file - such as: - P3 - 8 1 - 255 - 0 0 0 255 0 0 0 255 0 0 0 255 - 255 255 0 255 0 255 0 255 255 255 255 255 - Or else you could use use ppmdither -red 2 -green 2 -blue - -2 Options - -rle Run length encode the image. (This can result - in larger images) - - -back Enhance the foreground by indicating if the - background is light or dark compated to the - foreground. - - -render alg Use an internal rendering algorithm (default - dither). - - -gamma int Gamma correct the image using the integet - parameter as a gamma (default 0). - - -center Center the image to an 8.5 by 11 page - - -xpos pos Move by pos pixels in the x direction. - - -ypos pos Move by pos pixels in the y direction. - -2 References - HP PaintJet XL Color Graphics Printer User's Guide - -2 See_Also - pnmdepth, ppmquant, ppmdither, ppm - -2 Bugs - Most of the options have not been tested because of the - price of the paper. - -2 Author - Copyright (C) 1991 by Christos Zoulas. - -1 ppmtopuzz - ppmtopuzz - convert a portable pixmap into an X11 "puzzle" - file - -2 Synopsis - ppmtopuzz [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces an X11 "puzzle" - file as output. A "puzzle" file is for use with the puzzle - program included with the X11 distribution - puzzle's - - picture flag lets you specify an image file. - -2 See_Also - ppm, puzzle - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 ppmtorgb3 - ppmtorgb3 - separate a portable pixmap into three portable - graymaps - -2 Synopsis - ppmtorgb3 [ppmfile] - -2 Description - Reads a portable pixmap as input. Writes three portable - graymaps as output, one each for red, green, and blue. - - The output filenames are constructed by taking the input - filename, stripping off any extension, and appending ".red", - ".grn", and ".blu". For example, separating lenna.ppm would - result in lenna.red, lenna.grn, and lenna.blu. If the input - comes from stdin, the names are noname.red, noname.grn, and - noname.blu. - -2 See_Also - rgb3toppm, ppmtopgm, pgmtoppm, ppm, pgm - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 ppmtosixel - ppmtosixel - convert a portable pixmap into DEC sixel format - -2 Synopsis - ppmtosixel [-raw] [-margin] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces sixel commands - (SIX) as output. The output is formatted for color print- - ing, e.g. for a DEC LJ250 color inkjet printer. - - If RGB values from the PPM file do not have maxval=100, the - RGB values are rescaled. A printer control header and a - color assignment table begin the SIX file. Image data is - written in a compressed format by default. A printer con- - trol footer ends the image file. - -2 Options - -raw If specified, each pixel will be explicitly described - in the image file. If -raw is not specified, output - will default to compressed format in which identical - adjacent pixels are replaced by "repeat pixel" com- - mands. A raw file is often an order of magnitude - larger than a compressed file and prints much slower. - - -margin - If -margin is not specified, the image will be start at - the left margin (of the window, paper, or whatever). - If -margin is specified, a 1.5 inch left margin will - offset the image. - -2 Printing - Generally, sixel files must reach the printer unfiltered. - Use the lpr -x option or cat filename > /dev/tty0?. - -2 Bugs - Upon rescaling, truncation of the least significant bits of - RGB values may result in poor color conversion. If the ori- - ginal PPM maxval was greater than 100, rescaling also - reduces the image depth. While the actual RGB values from - the ppm file are more or less retained, the color palette of - the LJ250 may not match the colors on your screen. This - seems to be a printer limitation. - -2 See_Also - ppm - -2 Author - Copyright (C) 1991 by Rick Vinci. - -1 ppmtotga - ppmtotga - convert portable pixmap into a TrueVision Targa - file - -2 Synopsis - ppmtotga [-mono|-cmap|-rgb] [-norle] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces a TrueVision - Targa file as output. - -2 Options - -mono - Forces Targa file to be of type 8 bit monochrome. - Input must be a portable bitmap or a portable graymap. - - -cmap - Forces Targa file to be of type 24 bit colormapped. - Input must be a portable bitmap, a portable graymap or - a portable pixmap containing no more than 256 distinct - colors. - - -rgb Forces Targa file to be of type 24 bit unmapped color. - - -norle - Disables run-length encoding, in case you have a Targa - reader which can't read run-length encoded files. - - All flags can be abbreviated to their shortest unique pre- - fix. If no file type is specified the most highly con- - stained compatible type is used, where monochrome is more - constained than colormapped which is in turn more constained - than unmapped. - -2 Bugs - Does not support all possible Targa file types. Should - really be in PNM, not PPM. - -2 See_Also - tgatoppm, ppm - -2 Author - Copyright (C) 1989, 1991 by Mark Shand and Jef Poskanzer. - -1 ppmtouil - ppmtouil - convert a portable pixmap into a Motif UIL icon - file - -2 Synopsis - ppmtouil [-name uilname] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces a Motif UIL icon - file as output. - - If the program was compiled with an rgb database specified, - and a RGB value from the ppm input matches a RGB value from - the database, then the corresponding color name mnemonic is - printed in the UIL's colormap. If no rgb database was com- - piled in, or if the RGB values don't match, then the color - will be printed with the #RGB, #RRGGBB, #RRRGGGBBB, or - #RRRRGGGGBBBB hexadecimal format. - -2 Options - -name - Allows you to specify the prefix string which is - printed in the resulting UIL output. If not specified, - will default to the filename (without extension) of the - ppmfile argument. If -name is not specified and no - ppmfile is specified (i.e. piped input), the prefix - string will default to the string "noname". - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 See_Also - ppm - -2 Author - Converted by Jef Poskanzer from ppmtoxpm.c, which is Copy- - right (C) 1990 by Mark W. Snitily - -1 ppmtoxpm - ppmtoxpm - convert a portable pixmap into an X11 pixmap - -2 Synopsis - ppmtoxpm [-name xpmname] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces X11 pixmap (XPM) - as output. - - If the program was compiled with an rgb database specified, - and a RGB value from the ppm input matches a RGB value from - the database, then the corresponding color name mnemonic is - printed in the XPM's colormap. If no rgb database was com- - piled in, or if the RGB values don't match, then the color - will be printed with the #RGB, #RRGGBB, #RRRGGGBBB, or - #RRRRGGGGBBBB hexadecimal format. - -2 Options - -name - Allows you to specify the prefix string which is - printed in the resulting XPM output. If not specified, - will default to the filename (without extension) of the - ppmfile argument. If -name is not specified and no - ppmfile is specified (i.e. piped input), the prefix - string will default to the string "noname". - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 Example - To convert the file "dot" (found in - /usr/include/X11/bitmaps), from xbm to xpm one could specify - - xbmtopbm dot | ppmtoxpm -name dot - -2 Bugs - An option to match the closest (rather than exact) color - name mnemonic from the rgb text would be a desirable - enhancement. - - Truncation of the least significant bits of a RGB value may - result in nonexact matches when performing color name - mnemonic lookups. - -2 See_Also - xpmtoppm, ppm - -2 Author - Copyright (C) 1990 by Mark W. Snitily. - -1 ppmtoyuv - ppmtoyuv - convert a portable pixmap into an Abekas YUV file - -2 Synopsis - ppmtoyuv [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces an Abekas YUV - file as output. - -2 See_Also - yuvtoppm, ppm - -2 Author - Marc Boucher <marc@PostImage.COM>, based on Example Conver- - sion Program, A60/A64 Digital Video Interface Manual, page - 69. - - Copyright (C) 1991 by DHD PostImage Inc. - - Copyright (C) 1987 by Abekas Video Systems Inc. - -1 ppmtoyuvsplit - ppmtoyuvsplit - convert a portable pixmap into 3 subsampled - raw YUV files - -2 Synopsis - ppmtoyuvsplit basename [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces 3 raw files - basename.Y, basename.U and basename.V as output. These - files are the subsampled raw YUV representation of the input - pixmap, as required by the Stanford MPEG codec. The subsam- - pling is done by arithmetic mean of 4 pixels colors into - one. The YUV values are scaled according to CCIR.601, as - assumed by MPEG. - -2 See_Also - mpeg, ppm - -2 Author - Copyright (C) 1993 by Andre Beck. (Andreeck@IRS.Inf.TU- - Dresden.de) - - Based on ppmtoyuv.c - -1 qrttoppm - qrttoppm - convert output from the QRT ray tracer into a - portable pixmap - -2 Synopsis - qrttoppm [qrtfile] - -2 Description - Reads a QRT file as input. Produces a portable pixmap as - output. - -2 See_Also - ppm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 rawtoppm - rawtoppm - convert raw RGB bytes into a portable pixmap - -2 Synopsis - rawtoppm [-headerskip N] [-rowskip N] [-rgb|-rbg|-grb |- - gbr|-brg|-bgr ] [-interpixel|-interrow] width height [image- - data] - -2 Description - Reads raw RGB bytes as input. Produces a portable pixmap as - output. The input file is just RGB bytes. You have to - specify the width and height on the command line, since the - program obviously can't get them from the file. The maxval - is assumed to be 255. If the resulting image is upside - down, run it through pnmflip -tb . - -2 Options - -headerskip - If the file has a header, you can use this flag to skip - over it. - - -rowskip - If there is padding at the ends of the rows, you can - skip it with this flag. - - -rgb -rbg -grb -gbr -brg -bgr - These flags let you specify alternate color orders. - The default is -rgb. - - -interpixel -interrow - These flags let you specify how the colors are inter- - leaved. The default is -interpixel, meaning inter- - leaved by pixel. A byte of red, a byte of green, and a - byte of blue, or whatever color order you specified. - -interrow means interleaved by row - a row of red, a - row of green, a row of blue, assuming standard rgb - color order. An -interplane flag - all the red pix- - els, then all the green, then all the blue - would be - an obvious extension, but is not implemented. You - could get the same effect by splitting the file into - three parts (perhaps using dd), turning each part into - a PGM file with rawtopgm, and then combining them with - rgb3toppm. - -2 See_Also - ppm, rawtopgm, rgb3toppm, pnmflip - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 rgb3toppm - rgb3toppm - combine three portable graymaps into one port- - able pixmap - -2 Synopsis - rgb3toppm redpgmfile greenpgmfile bluepgmfile - -2 Description - Reads three portable graymaps as input. Combines them and - produces one portable pixmap as output. - -2 See_Also - ppmtorgb3, pgmtoppm, ppmtopgm, ppm, pgm - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 sldtoppm - sldtoppm - convert an AutoCAD slide file into a portable - pixmap - -2 Synopsis - sldtoppm [-adjust] [-dir] [-height|-ysize s] [-info] [- - lib|-Lib name] [-scale s] [-verbose] [-width|-xsize - s] [slidefile] - -2 Description - Reads an AutoCAD(Reg.) slide file and outputs a portable - pixmap. If no slidefile is specified, input is read from - standard input. The ppmdraw library is used to convert the - vector and polygon information in the slide file to a pix- - map; see the file ppmdraw.h for details on this package. - -2 Options - -adjust - If the display on which the slide file was created had - non-square pixels, when the slide is processed with - sldtoppm and the -adjust option is not present, the - following warning will appear: - Warning - pixels on source screen were non-square. - Specifying -adjust will correct image width to com- - pensate. - Specifying the -adjust option causes sldtoppm to scale - the width of the image so that pixels in the resulting - portable pixmap are square (and hence circles appear as - true circles, not ellipses). The scaling is performed - in the vector domain, before scan converting the - objects. The results are, therefore, superior in - appearance to what you'd obtain were you to perform the - equivalent scaling with pnmscale after the bitmap had - been created. - - -dir The input is assumed to be an AutoCAD slide library - file. A directory listing each slide in the library is - printed on standard error. - - -height size - Scales the image in the vector domain so it is size - pixels in height. If no -width or -xsize option is - specified, the width will be adjusted to preserve the - pixel aspect ratio. - - -info - Dump the slide file header on standard error, display- - ing the original screen size and aspect ratio among - other information. - - -lib name - Extracts the slide with the given name from the slide - library given as input. The specified name is con- - verted to upper case. - - -Lib name - Extracts the slide with the given name from the slide - library given as input. The name is used exactly as - specified; it is not converted to upper case. - - -scale s - Scales the image by factor s, which may be any floating - point value greater than zero. Scaling is done after - aspect ratio adjustment, if any. Since scaling is per- - formed in the vector domain, before rasterisation, the - results look much better than running the output of - sldtoppm through pnmscale. - - -verbose - Dumps the slide file header and lists every vector and - polygon in the file on standard error. - - -width size - Scales the image in the vector domain so it is size - pixels wide. If no -height or -ysize option is speci- - fied, the height will be adjusted to preserve the pixel - aspect ratio. - - -xsize size - Scales the image in the vector domain so it is size - pixels wide. If no -height or -ysize option is speci- - fied, the height will be adjusted to preserve the pixel - aspect ratio. - - -ysize size - Scales the image in the vector domain so it is size - pixels in height. If no -width or -xsize option is - specified, the width will be adjusted to preserve the - pixel aspect ratio. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 Bugs - Only Level 2 slides are converted. Level 1 format has been - obsolete since the advent of AutoCAD Release 9 in 1987, and - was not portable across machine architectures. - - Slide library items with names containing 8 bit (such as - ISO) or 16 bit (Kanji, for example) characters may not be - found when chosen with the -lib option unless sldtoppm has - been built with character set conversion functions appropri- - ate to the locale. You can always retrieve slides from - libraries regardless of the character set by using the -Lib - option and specifying the precise name of library member. - Use the -dir option to list the slides in a library if - you're unsure of the exact name. - -2 See_Also - AutoCAD Reference Manual: Slide File Format, pnmscale, - ppm - -2 Author - John Walker - Autodesk SA - Avenue des Champs-Montants 14b - CH-2074 MARIN - Suisse/Schweiz/Svizzera/Svizra/Switzerland - Usenet: kelvin@Autodesk.com - Fax: 038/33 88 15 - Voice: 038/33 76 33 - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, without any conditions or restric- - tions. This software is provided ``as is'' without express - or implied warranty. - - AutoCAD and Autodesk are registered trademarks of Autodesk, - Inc. - -1 spctoppm - spctoppm - convert an Atari compressed Spectrum file into a - portable pixmap - -2 Synopsis - spctoppm [spcfile] - -2 Description - Reads an Atari compressed Spectrum file as input. Produces - a portable pixmap as output. - -2 See_Also - sputoppm, ppm - -2 Author - Copyright (C) 1991 by Steve Belczyk (seb3@gte.com) and Jef - Poskanzer. - -1 sputoppm - sputoppm - convert an Atari uncompressed Spectrum file into - a portable pixmap - -2 Synopsis - sputoppm [spufile] - -2 Description - Reads an Atari uncompressed Spectrum file as input. Pro- - duces a portable pixmap as output. - -2 See_Also - spctoppm, ppm - -2 Author - Copyright (C) 1991 by Steve Belczyk (seb3@gte.com) and Jef - Poskanzer. - -1 tgatoppm - tgatoppm - convert TrueVision Targa file into a portable - pixmap - -2 Synopsis - tgatoppm [-debug] [tgafile] - -2 Description - Reads a TrueVision Targa file as input. Produces a portable - pixmap as output. - -2 Options - -debug - Causes the header information to be dumped to stderr. - - All flags can be abbreviated to their shortest unique pre- - fix. Should really be in PNM, not PPM. - -2 See_Also - ppmtotga, ppm - -2 Author - Partially based on tga2rast, version 1.0, by Ian J. Mac- - Phedran. - - Copyright (C) 1989 by Jef Poskanzer. - -1 ximtoppm - ximtoppm - convert an Xim file into a portable pixmap - -2 Synopsis - ximtoppm [ximfile] - -2 Description - Reads an Xim file as input. Produces a portable pixmap as - output. The Xim toolkit is included in the contrib tree of - the X.V11R4 release. - -2 See_Also - ppm - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 xpmtoppm - xpmtoppm - convert an X11 pixmap into a portable pixmap - -2 Synopsis - xpmtoppm [xpmfile] - -2 Description - Reads an X11 pixmap (XPM) as input. Produces a portable - pixmap as output. - -2 See_Also - ppmtoxpm, ppm - -2 Author - Copyright (C) 1991 by Jef Poskanzer. - -1 yuvtoppm - yuvtoppm - convert Abekas YUV bytes into a portable pixmap - -2 Synopsis - yuvtoppm width height [imagedata] - -2 Description - Reads raw Abekas YUV bytes as input. Produces a portable - pixmap as output. The input file is just YUV bytes. You - have to specify the width and height on the command line, - since the program obviously can't get them from the file. - The maxval is assumed to be 255. - -2 See_Also - ppmtoyuv, ppm - -2 Author - Marc Boucher <marc@PostImage.COM>, based on Example Conver- - sion Program, A60/A64 Digital Video Interface Manual, page - 69. - - Copyright (C) 1991 by DHD PostImage Inc. - - Copyright (C) 1987 by Abekas Video Systems Inc. - -1 yuvsplittoppm - yuvplittoppm - convert a Y- an U- and a V-file into a port- - able pixmap. - -2 Synopsis - yuvsplittoppm basename width height [-ccir601] - -2 Description - Reads three files, containing the YUV components, as input. - These files are basename .Y, basename.U and basename.V . - Produces a portable pixmap on stdout. - - Since the YUV files are raw files, the dimensions width and - height must be specified on the command line. - -2 Options - -ccir601 - Assumes that the YUV triplets are scaled into the - smaller range of the CCIR 601 (MPEG) standard. Else, - the JFIF (JPEG) standard is assumed. - -2 See_Also - ppmtoyuvsplit, yuvtoppm, ppm - -2 Author - Marcel Wijkstra <wijkstra@fwi.uva.nl>, based on - ppmtoyuvsplit. - -1 ppmforge - ppmforge - fractal forgeries of clouds, planets, and starry - skies - -2 Synopsis - ppmforge [-clouds] [-night] [-dimension dimen] [-hour hour] - [-inclination|-tilt angle] [-mesh size] [-power - factor] [-glaciers level] [-ice level] [-saturation - sat] [-seed seed] [-stars fraction] [-xsize|-width - width] [-ysize|-height height] - -2 Description - ppmforge generates three kinds of ``random fractal for- - geries,'' the term coined by Richard F. Voss of the IBM Tho- - mas J. Watson Research Center for seemingly realistic pic- - tures of natural objects generated by simple algorithms em- - bodying randomness and fractal self-similarity. The tech- - niques used by ppmforge are essentially those given by - Voss[1], particularly the technique of spectral synthesis - explained in more detail by Dietmar Saupe[2]. - - The program generates two varieties of pictures: planets and - clouds, which are just different renderings of data generat- - ed in an identical manner, illustrating the unity of the - fractal structure of these very different objects. A third - type of picture, a starry sky, is synthesised directly from - pseudorandom numbers. - - The generation of planets or clouds begins with the prepara- - tion of an array of random data in the frequency domain. - The size of this array, the ``mesh size,'' can be set with - the -mesh option; the larger the mesh the more realistic the - pictures but the calculation time and memory requirement in- - creases as the square of the mesh size. The fractal dimen- - sion, which you can specify with the -dimension option, - determines the roughness of the terrain on the planet or the - scale of detail in the clouds. As the fractal dimension is - increased, more high frequency components are added into the - random mesh. - - Once the mesh is generated, an inverse two dimensional - Fourier transform is performed upon it. This converts the - original random frequency domain data into spatial ampli- - tudes. We scale the real components that result from the - Fourier transform into numbers from 0 to 1 associated with - each point on the mesh. You can further modify this number - by applying a ``power law scale'' to it with the -power op- - tion. Unity scale leaves the numbers unmodified; a power - scale of 0.5 takes the square root of the numbers in the - mesh, while a power scale of 3 replaces the numbers in the - mesh with their cubes. Power law scaling is best envisioned - by thinking of the data as representing the elevation of - terrain; powers less than 1 yield landscapes with vertical - scarps that look like glacially-carved valleys; powers - greater than one make fairy-castle spires (which require - large mesh sizes and high resolution for best results). - - After these calculations, we have a array of the specified - size containing numbers that range from 0 to 1. The pixmaps - are generated as follows: - - Clouds A colour map is created that ranges from pure blue - to white by increasing admixture (desaturation) of - blue with white. Numbers less than 0.5 are - coloured blue, numbers between 0.5 and 1.0 are - coloured with corresponding levels of white, with - 1.0 being pure white. - - Planet The mesh is projected onto a sphere. Values less - than 0.5 are treated as water and values between - 0.5 and 1.0 as land. The water areas are coloured - based upon the water depth, and land based on its - elevation. The random depth data are used to - create clouds over the oceans. An atmosphere ap- - proximately like the Earth's is simulated; its - light absorption is calculated to create a blue - cast around the limb of the planet. A function - that rises from 0 to 1 based on latitude is modu- - lated by the local elevation to generate polar ice - caps--high altitude terrain carries glaciers - farther from the pole. Based on the position of - the star with respect to the observer, the ap- - parent colour of each pixel of the planet is cal- - culated by ray-tracing from the star to the planet - to the observer and applying a lighting model that - sums ambient light and diffuse reflection (for - most planets ambient light is zero, as their pri- - mary star is the only source of illumination). - Additional random data are used to generate stars - around the planet. - - Night A sequence of pseudorandom numbers is used to gen- - erate stars with a user specified density. - - Cloud pictures always contain 256 or fewer colours and may - be displayed on most colour mapped devices without further - processing. Planet pictures often contain tens of thousands - of colours which must be compressed with ppmquant or - ppmdither before encoding in a colour mapped format. If the - display resolution is high enough, ppmdither generally pro- - duces better looking planets. ppmquant tends to create - discrete colour bands, particularly in the oceans, which are - unrealistic and distracting. The number of colours in star- - ry sky pictures generated with the -night option depends on - the value specified for -saturation. Small values limit the - colour temperature distribution of the stars and reduce the - number of colours in the image. If the -saturation is set - to 0, none of the stars will be coloured and the resulting - image will never contain more than 256 colours. Night sky - pictures with many different star colours often look best - when colour compressed by pnmdepth rather than ppmquant or - ppmdither. Try newmaxval settings of 63, 31, or 15 with - pnmdepth to reduce the number of colours in the picture to - 256 or fewer. - -2 Options - -clouds Generate clouds. A pixmap of fractal clouds is - generated. Selecting clouds sets the default for - fractal dimension to 2.15 and power scale factor - to 0.75. - - -dimension dimen - Sets the fractal dimension to the specified dimen, - which may be any floating point value between 0 - and 3. Higher fractal dimensions create more - ``chaotic'' images, which require higher resolu- - tion output and a larger FFT mesh size to look - good. If no dimension is specified, 2.4 is used - when generating planets and 2.15 for clouds. - - -glaciers level - The floating point level setting controls the ex- - tent to which terrain elevation causes ice to ap- - pear at lower latitudes. The default value of - 0.75 makes the polar caps extend toward the equa- - tor across high terrain and forms glaciers in the - highest mountains, as on Earth. Higher values - make ice sheets that cover more and more of the - land surface, simulating planets in the midst of - an ice age. Lower values tend to be boring, - resulting in unrealistic geometrically-precise ice - cap boundaries. - - -hour hour - When generating a planet, hour is used as the - ``hour angle at the central meridian.'' If you - specify -hour 12, for example, the planet will be - fully illuminated, corresponding to high noon at - the longitude at the centre of the screen. You - can specify any floating point value between 0 and - 24 for hour, but values which place most of the - planet in darkness (0 to 4 and 20 to 24) result in - crescents which, while pretty, don't give you many - illuminated pixels for the amount of computing - that's required. If no -hour option is specified, - a random hour angle is chosen, biased so that only - 25% of the images generated will be crescents. - - -ice level - Sets the extent of the polar ice caps to the given - floating point level. The default level of 0.4 - produces ice caps similar to those of the Earth. - Smaller values reduce the amount of ice, while - larger -ice settings create more prominent ice - caps. Sufficiently large values, such as 100 or - more, in conjunction with small settings for - - glaciers (try 0.1) create ``ice balls'' like Euro- - pa. - - -inclination|-tilt angle - The inclination angle of the planet with regard to - its primary star is set to angle, which can be any - floating point value from -90 to 90. The inclina- - tion angle can be thought of as specifying, in de- - grees, the ``season'' the planet is presently ex- - periencing or, more precisely, the latitude at - which the star transits the zenith at local noon. - If 0, the planet is at equinox; the star is - directly overhead at the equator. Positive values - represent summer in the northern hemisphere, nega- - tive values summer in the southern hemisphere. - The Earth's inclination angle, for example, is - about 23.5 at the June solstice, 0 at the - equinoxes in March and September, and -23.5 at the - December solstice. If no inclination angle is - specified, a random value between -21.6 and 21.6 - degrees is chosen. - - -mesh size - A mesh of size by size will be used for the fast - Fourier transform (FFT). Note that memory re- - quirements and computation speed increase as the - square of size; if you double the mesh size, the - program will use four times the memory and run - four times as long. The default mesh is 256x256, - which produces reasonably good looking pictures - while using half a megabyte for the 256x256 array - of single precision complex numbers required by - the FFT. On machines with limited memory capaci- - ty, you may have to reduce the mesh size to avoid - running out of RAM. Increasing the mesh size pro- - duces better looking pictures; the difference be- - comes particularly noticeable when generating high - resolution images with relatively high fractal di- - mensions (between 2.2 and 3). - - -night A starry sky is generated. The stars are created - by the same algorithm used for the stars that sur- - round planet pictures, but the output consists ex- - clusively of stars. - - -power factor - Sets the ``power factor'' used to scale elevations - synthesised from the FFT to factor, which can be - any floating point number greater than zero. If - no factor is specified a default of 1.2 is used if - a planet is being generated, or 0.75 if clouds are - selected by the -clouds option. The result of the - FFT image synthesis is an array of elevation - values between 0 and 1. A non-unity power factor - exponentiates each of these elevations to the - specified power. For example, a power factor of 2 - squares each value, while a power factor of 0.5 - replaces each with its square root. (Note that - exponentiating values between 0 and 1 yields - values that remain within that range.) Power fac- - tors less than 1 emphasise large-scale elevation - changes at the expense of small variations. Power - factors greater than 1 increase the roughness of - the terrain and, like high fractal dimensions, may - require a larger FFT mesh size and/or higher - screen resolution to look good. - - -saturation sat - Controls the degree of colour saturation of the - stars that surround planet pictures and fill star- - ry skies created with the -night option. The de- - fault value of 125 creates stars which resemble - the sky as seen by the human eye from Earth's sur- - face. Stars are dim; only the brightest activate - the cones in the human retina, causing colour to - be perceived. Higher values of sat approximate - the appearance of stars from Earth orbit, where - better dark adaptation, absence of skyglow, and - the concentration of light from a given star onto - a smaller area of the retina thanks to the lack of - atmospheric turbulence enhances the perception of - colour. Values greater than 250 create ``science - fiction'' skies that, while pretty, don't occur in - this universe. - - Thanks to the inverse square law combined with - Nature's love of mediocrity, there are many, many - dim stars for every bright one. This population - relationship is accurately reflected in the skies - created by ppmforge. Dim, low mass stars live - much longer than bright massive stars, consequent- - ly there are many reddish stars for every blue gi- - ant. This relationship is preserved by ppmforge. - You can reverse the proportion, simulating the sky - as seen in a starburst galaxy, by specifying a - negative sat value. - - -seed num Sets the seed for the random number generator to - the integer num. The seed used to create each - picture is displayed on standard output (unless - suppressed with the -quiet option). Pictures gen- - erated with the same seed will be identical. If - no -seed is specified, a random seed derived from - the date and time will be chosen. Specifying an - explicit seed allows you to re-render a picture - you particularly like at a higher resolution or - with different viewing parameters. - - -stars fraction - Specifies the percentage of pixels, in tenths of a - percent, which will appear as stars, either sur- - rounding a planet or filling the entire frame if - -night is specified. The default fraction is 100. - - -xsize|-width width - Sets the width of the generated image to width - pixels. The default width is 256 pixels. Images - must be at least as wide as they are high; if a - width less than the height is specified, it will - be increased to equal the height. If you must - have a long skinny pixmap, make a square one with - ppmforge, then use pnmcut to extract a portion of - the shape and size you require. - - -ysize|-height height - Sets the height of the generated image to height - pixels. The default height is 256 pixels. If the - height specified exceeds the width, the width will - be increased to equal the height. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 Bugs - The algorithms require the output pixmap to be at least as - wide as it is high, and the width to be an even number of - pixels. These constraints are enforced by increasing the - size of the requested pixmap if necessary. - - You may have to reduce the FFT mesh size on machines with 16 - bit integers and segmented pointer architectures. - -2 See_Also - pnmcut, pnmdepth, ppmdither, ppmquant, ppm - - [1] Voss, Richard F., ``Random Fractal Forgeries,'' in - Earnshaw et. al., Fundamental Algorithms for Computer - Graphics, Berlin: Springer-Verlag, 1985. - - [2] Peitgen, H.-O., and Saupe, D. eds., The Science Of - Fractal Images, New York: Springer Verlag, 1988. - -2 Author - John Walker - Autodesk SA - Avenue des Champs-Montants 14b - CH-2074 MARIN - Suisse/Schweiz/Svizzera/Svizra/Switzerland - Usenet: kelvin@Autodesk.com - Fax: 038/33 88 15 - Voice: 038/33 76 33 - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, without any conditions or restric- - tions. This software is provided ``as is'' without express - or implied warranty. - - PLUGWARE! If you like this kind of stuff, you may also enjoy - ``James Gleick's Chaos--The Software'' for MS-DOS, available - for $59.95 from your local software store or directly from - Autodesk, Inc., Attn: Science Series, 2320 Marinship Way, - Sausalito, CA 94965, USA. Telephone: (800) 688-2344 toll- - free or, outside the U.S. (415) 332-2344 Ext 4886. Fax: - (415) 289-4718. ``Chaos--The Software'' includes a more - comprehensive fractal forgery generator which creates - three-dimensional landscapes as well as clouds and planets, - plus five more modules which explore other aspects of Chaos. - The user guide of more than 200 pages includes an introduc- - tion by James Gleick and detailed explanations by Rudy Ruck- - er of the mathematics and algorithms used by each program. - -1 ppmpat - ppmpat - make a pretty pixmap - -2 Synopsis - ppmpat -gingham2|-g2|-gingham3| -g3|-madras|-tartan| - - poles|-squig|-camo| -anticamo width height - -2 Description - Produces a portable pixmap of the specified width and - height, with a pattern in it. - - This program is mainly to demonstrate use of the ppmdraw - routines, a simple but powerful drawing library. See the - ppmdraw.h include file for more info on using these rou- - tines. Still, some of the patterns can be rather pretty. - If you have a color workstation, something like ppmpat - -squig 300 300 | ppmquant 128 should generate a nice back- - ground. - -2 Options - The different flags specify various different pattern types: - - -gingham2 - A gingham check pattern. Can be tiled. - - -gingham3 - A slightly more complicated gingham. Can be tiled. - - -madras - A madras plaid. Can be tiled. - - -tartan - A tartan plaid. Can be tiled. - - -poles - Color gradients centered on randomly-placed poles. May - need to be run through ppmquant. - - -squig - Squiggley tubular pattern. Can be tiled. May need to - be run through ppmquant. - - -camo - Camouflage pattern. May need to be run through - ppmquant. - - -anticamo - Anti-camouflage pattern - like -camo, but ultra-bright - colors. May need to be run through ppmquant. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 References - Some of the patterns are from "Designer's Guide to Color 3" - by Jeanne Allen. - -2 See_Also - pnmtile, ppmquant, ppm - -2 Author - Copyright (C) 1989 by Jef Poskanzer. - -1 ppmqvga - ppmqvga - 8 plane quantization - -2 Synopsis - ppmqvga [ options ] [ input file ] - -2 Description - ppmqvga quantizes PPM files to 8 planes, with optional - Floyd-Steinberg dithering. Input is a PPM file from the - file named, or standard input of no file is provided. - -2 Options - -d dither. Apply Floyd-Steinberg dithering to the data - - -q quiet. Produces no progress reporting, and no terminal - output unless and error occurs. - - -v verbose. Produces additional output describing the number - of colors found, and some information on the resulting map- - ping. May be repeated to generate loads of internal table - output, but generally only useful once. - -2 Examples - ppmqvga -d mymage.ppm | ppmtogif >mymage.gif - - tgatoppm zombie.tga | ppmqvga | ppmtotif > zombie.tif - -2 See_Also - ppmquant - -2 Diagnostics - Error messages if problems, various levels of optional pro- - gress reporting. - -2 Limitations - none known. - -2 Author - Original by Lyle Rains (lrains@netcom.com) as ppmq256 and - ppmq256fs combined, documented, and enhanced by Bill David- - sen (davidsen@crd.ge.com) - - Copyright 1991,1992 by Bill Davidsen, all rights reserved. - The program and documentation may be freely distributed by - anyone in source or binary format. Please clearly note any - changes. - -1 ppmtomap - ppmtomap - extract all colors from a portable pixmap - -2 Synopsis - ppmtomap [-sort] [-square] [ppmfile] - -2 Description - Reads a portable pixmap as input. Produces a portable pix- - map as output, representing a color map of the input file. - All N different colors found are put in an Nx1 portable pix- - map. This color map file can be used as a mapfile for - ppmquant or ppmtogif. - -2 Options - -sort - Produces a portable pixmap with the colors in some - sorted order. - - -square - Produces a (more or less) square output file, instead - of putting all colors on the top row. - - All flags can be abbreviated to their shortest unique pre- - fix. - -2 WARNING - If you want to use the output file as a mapfile for ppmto- - gif, you first have to do a ppmquant 256, since ppmtomap is - not limited to 256 colors (but to 65536). - -2 See_Also - ppmtogif, ppmquant, ppm - -2 Author - Marcel Wijkstra (wijkstra@fwi.uva.nl). - - Copyright (C) 1989 by Jef Poskanzer. - -1 ppmtopjxl - ppmtopjxl - convert a portable pixmap into an HP PaintJet XL - PCL file - -2 Synopsis - ppmtopjxl [-nopack] [-gamma <n> ] [-presentation] [-dark] - [-diffuse] [-cluster] [-dither] [-xshift <s> ] [-yshift <s> - ] [-xshift <s> ] [-yshift <s> ] [-xsize|-width|-xscale <s> ] - [-ysize|-height|-yscale <s> ] [ppmfile] - - -2 Description - Reads a portable pixmap as input. Produces a PCL file suit- - able for printing on an HP PaintJet XL printer as output. - - The generated file is not suitable for printing on a normal - PrintJet printer. The -nopack option generates a file which - does not use the normal TIFF 4.0 compression method. This - file might be printable on a normal PaintJet printer (not an - XL). - - The -gamma option sets the gamma correction for the image. - The useful range for the PaintJet XL is approximately 0.6 to - 1.5. - - The rendering algorithm used for images can be altered with - the -dither, -cluster, and -diffuse options. These options - select ordered dithering, clustered ordered dithering, or - error diffusion respectively. The -dark option can be used - to enhance images with a dark background when they are - reduced in size. The -presentation option turns on presen- - tation mode, in which two passes are made over the paper to - increase ink density. This should be used only for images - where quality is critical. - - - The image can be resized by setting the -xsize and -ysize - options. The parameter to either of these options is inter- - preted as the number of dots to set the width or height to, - but an optional dimension of `pt' (points), `dp' (deci- - points), `in' (inches), or `cm' (centimetres) may be - appended. If only one dimension is specified, the other - will be scaled appropriately. - - The options -width and -height are synonyms of -xsize and - -ysize. - - The -xscale and -yscale options can alternatively be used to - scale the image by a simple factor. - - The image can be shifted on the page by using the -xshift - and -yshift options. These move the image the specified - dimensions right and down. - - -2 See_Also - ppm - -2 Author - Angus Duggan - -1 libppm - libppm - functions to support portable pixmap programs - -2 Synopsis - #include <ppm.h> - cc ... libppm.a libpgm.a libpbm.a - - -2 Description - TYPES AND CONSTANTS - typedef ... pixel; - typedef ... pixval; - #define PPM_MAXMAXVAL ... - extern pixval ppm_pbmmaxval; - - Each pixel contains three pixvals, each of which should con- - tain only the values between 0 and PPM_MAXMAXVAL. - ppm_pbmmaxval is the maxval used when a PPM program reads a - PBM file. Normally it is 1; however, for some programs, a - larger value gives better results. - - #define PPM_FORMAT ... - #define RPPM_FORMAT ... - #define PPM_TYPE PPM_FORMAT - int PPM_FORMAT_TYPE( int format ) - - For distinguishing different file formats and types. - - pixval PPM_GETR( pixel p ) - pixval PPM_GETG( pixel p ) - pixval PPM_GETB( pixel p ) - - These three macros retrieve the red, green or blue value - from the given pixel. - - void PPM_ASSIGN( pixel p, pixval red, pixval grn, pixval blu ) - - This macro assigns the given red, green and blue values to - the pixel. - - int PPM_EQUAL( pixel p, pixel q ) - - This macro checks two pixels for equality. - - void PPM_DEPTH( pixel newp, pixel p, pixval oldmaxval, pixval newmaxval ) - - This macro scales the colors of pixel p according the old - and new maximum values and assigns the new values to newp. - It is intended to make writing ppmtowhatever easier. - - float PPM_LUMIN( pixel p ) - This macro determines the luminance of the pixel p. - - MEMORY MANAGEMENT - pixel** ppm_allocarray( int cols, int rows ) - - Allocate an array of pixels. - - pixel* ppm_allocrow( int cols ) - - Allocate a row of the given number of pixels. - - void ppm_freearray( pixel** pixels, int rows ) - - Free the array allocated with ppm_allocarray() containing - the given number of rows. - - void pbm_freerow( pixel* pixelrow ) - - Free a row of pixels. - - READING PBM FILES - void ppm_readppminit( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP, int* formatP ) - - Read the header from a PPM file, filling in the rows, cols, - maxval and format variables. - - void ppm_readppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int format ) - - Read a row of pixels into the pixelrow array. Format, cols, - and maxval were filled in by ppm_readppminit(). - - pixel** ppm_readppm( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP ) - - Read an entire pixmap file into memory, returning the allo- - cated array and filling in the rows, cols and maxval vari- - ables. This function combines ppm_readppminit(), - ppm_allocarray() and ppm_readppmrow(). - - WRITING FILES - void ppm_writeppminit( FILE* fp, int cols, int rows, pixval maxval, int forceplain ) - - Write the header for a portable pixmap file. The forceplain - flag forces a plain-format file to be written, as opposed to - a raw-format one. - - void ppm_writeppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int forceplain ) - - Write a row from a portable pixmap. - - void ppm_writeppm( FILE* fp, pixel** pixels, int cols, int rows, pixval maxval, int forceplain ) - - Write the header and all data for a portable pixmap. This - function combines ppm_writeppminit() and ppm_writeppmrow(). - - COLOR NAMES - pixel ppm_parsecolor( char* colorname, pixval maxval ) - - Parses an ASCII color name into a pixel. The color can be - specified in three ways. One, as a name, assuming that a - pointer to an X11-style color names file was compiled in. - Two, as an X11-style hexadecimal number: #rgb, #rrggbb, - #rrrgggbbb, or #rrrrggggbbbb. Three, as a triplet of - decimal floating point numbers separated by commas: - r.r,g.g,b.b. - - char* ppm_colorname( pixel* colorP, pixval maxval, int hexok ) - - Returns a pointer to a string describing the given color. - If the X11 color names file is available and the color - appears in it, that name is returned. Otherwise, if the - hexok flag is true then a hexadecimal colorspec is returned; - if hexok is false and the X11 color names file is available, - then the closest matching color is returned; otherwise, it's - an error. - -2 See_Also - pbm, pgm - -2 Author - Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer. - -1 ppm - ppm - portable pixmap file format - -2 Description - The portable pixmap format is a lowest common denominator - color image file format. The definition is as follows: - - - A "magic number" for identifying the file type. A ppm - file's magic number is the two characters "P3". - - - Whitespace (blanks, TABs, CRs, LFs). - - - A width, formatted as ASCII characters in decimal. - - - Whitespace. - - - A height, again in ASCII decimal. - - - Whitespace. - - - The maximum color-component value, again in ASCII decimal. - - - Whitespace. - - - Width * height pixels, each three ASCII decimal values - between 0 and the specified maximum value, starting at the - top-left corner of the pixmap, proceeding in normal - English reading order. The three values for each pixel - represent red, green, and blue, respectively; a value of 0 - means that color is off, and the maximum value means that - color is maxxed out. - - - Characters from a "#" to the next end-of-line are ignored - (comments). - - - No line should be longer than 70 characters. - - Here is an example of a small pixmap in this format: - P3 - # feep.ppm - 4 4 - 15 - 0 0 0 0 0 0 0 0 0 15 0 15 - 0 0 0 0 15 7 0 0 0 0 0 0 - 0 0 0 0 0 0 0 15 7 0 0 0 - 15 0 15 0 0 0 0 0 0 0 0 0 - - Programs that read this format should be as lenient as pos- - sible, accepting anything that looks remotely like a pixmap. - - There is also a variant on the format, available by setting - the RAWBITS option at compile time. This variant is - different in the following ways: - - - The "magic number" is "P6" instead of "P3". - - - The pixel values are stored as plain bytes, instead of - ASCII decimal. - - - Whitespace is not allowed in the pixels area, and only a - single character of whitespace (typically a newline) is - allowed after the maxval. - - - The files are smaller and many times faster to read and - write. - - Note that this raw format can only be used for maxvals less - than or equal to 255. If you use the ppm library and try to - write a file with a larger maxval, it will automatically - fall back on the slower but more general plain format. - -2 See_Also - giftopnm, gouldtoppm, ilbmtoppm, imgtoppm, mtvtoppm, pcxtoppm, - pgmtoppm, pi1toppm, picttoppm, pjtoppm, qrttoppm, rawtoppm, - rgb3toppm, sldtoppm, spctoppm, sputoppm, tgatoppm, ximtoppm, - xpmtoppm, yuvtoppm, ppmtoacad, ppmtogif, ppmtoicr, ppmtoilbm, - ppmtopcx, ppmtopgm, ppmtopi1, ppmtopict, ppmtopj, ppmtopuzz, - ppmtorgb3, ppmtosixel, ppmtotga, ppmtouil, ppmtoxpm, ppmtoyuv, - ppmdither, ppmforge, ppmhist, ppmmake, ppmpat, ppmquant, - ppmquantall, ppmrelief, pnm, pgm, pbm - -2 Author - Copyright (C) 1989, 1991 by Jef Poskanzer. - -1 pgmkernel - pgmkernel - generate a convolution kernel - -2 Synopis - pgmkernel [-weight w] width [height] - -2 Description - Generates a portable graymap array of size width x height (or - width x width if height is not specified) to be used as a - convolution file by pnmconvol. The data in the convolution array - K are computed according to the formula: - - K(i,j) = 1 / ( 1 + w * sqrt((i-width/2)\^{}2 + (j-height/2)\^{}2)) - - where w is a coefficient specified via the -weight flag, and width - and height are the X and Y filter sizes. - - The output PGM file is always written out in ASCII format. - -2 Options - The optional -weight flag should be a real number greater than - -1. The default value is 6.0. - -2 Bugs - The computation time is proportional to width * height. This - increases rapidly with the increase of the kernel size. A better - approach could be using a FFT in these cases. - -2 See_Also - pnmconvol(1), pnmsmooth(1) - -2 Author - Alberto Accomazzi (alberto@cfa.harvard.edu). - -1 fitstopnm - fitstopnm - convert a FITS file into a portable anymap - -2 Synopis - fitstopnm [-image N] [-noraw] [-scanmax] [-printmax] [-min f] - [-max f] [FITSfile] - -2 Description - Reads a FITS file as input. Produces a portable pixmap if the - FITS file consists of 3 image planes (NAXIS = 3 and NAXIS3 = 3), a - portable graymap if the FITS file consists of 2 image planes - (NAXIS = 2), or whenever the -image flag is specified. The - results may need to be flipped top for bottom; if so, just pipe - the output through pnmflip -tb. - -2 Options - The -image option is for FITS files with three axes. The - assumption is that the third axis is for multiple images, and this - option lets you select which one you want. - - Flags -min and -max can be used to override the min and max - values as read from the FITS header or the image data if no - DATAMIN and DATAMAX keywords are found. Flag -scanmax can be used - to force the program to scan the data even when DATAMIN and - DATAMAX are found in the header. If -printmax is specified, the - program will just print the min and max values and quit. Flag - -noraw can be used to force the program to produce an ASCII - portable anymap. - - The program will tell what kind of anymap is writing. All - flags can be abbreviated to their shortest unique prefix. - -2 References - FITS stands for Flexible Image Transport System. A full - description can be found in Astronomy & Astrophysics Supplement - Series 44 (1981), page 363. - -2 See_Also - pnmtofits(1), pgm(5), pnmflip(1) - -2 Author - Copyright (C) 1989 by Jef Poskanzer, with modifications by - Daniel Briggs (dbriggs@nrao.edu) and Alberto Accomazzi - (alberto@cfa.harvard.edu). - -1 pnmalias - pnmalias - antialias a portable anyumap. - -2 Synopis - pnmalias [-bgcolor color] [-fgcolor color] [-bonly] [-fonly] - [-balias] [-falias] [-weight w] [pnmfile] - -2 Description - Reads a portable anymap as input, and applies anti-aliasing to - background and foreground pixels. If the input file is a portable - bitmap, the output anti-aliased image is promoted to a graymap, - and a message is printed informing the user of the change in - format. - -2 Options - -bgcolor colorb, - -fgcolor colorf - set the background color to colorb, and the foreground to - color to colorf. Pixels with these values will be anti-aliased. - by default, the background color is taken to be black, and - foreground color is assumed to be white. The colors can be - specified in five ways: - - o A name, assuming that a pointer to an X11-style color - names file was compiled in. - - o An X11-style hexadecimal specifier: rgb:r/g/b, where r - g and b are each 1- to 4-digit hexadecimal numbers. - - o An X11-style decimal specifier: rgbi:r/g/b, where r g - and b are floating point numbers between 0 and 1. - - o For backwards compatibility, an old-X11-style - hexadecimal number: #rgb, #rrggbb, #rrrgggbbb, or - #rrrrggggbbbb. - - o For backwards compatibility, a triplet of numbers - separated by commas: r,g,b, where r g and b are floating - point numbers between 0 and 1. (This style was added - before MIT came up with the similar rgbi style.) - - Note that even when dealing with graymaps, background and - foreground colors need to be specified in the fashion described - above. In this case, background and foreground pixel values are - taken to be the value of the red component for the given color. - - -bonly, - -fonly - Apply anti-aliasing only to background (-bonly), or foreground - (-fonly) pixels. - - -balias, - -falias - Apply anti-aliasing to all pixels surrounding background - (-balias), or foreground (-falias) pixels. By default, - anti-aliasing takes place only among neighboring background and - foreground pixels. - - -weight w - Use w as the central weight for the aliasing filter. W must - be a real number in the range 0 < w < 1. The lower the value of w - is, the "blurrier" the output image is. The default is w = 1/3. - -2 See_Also - pbmtext(1), pnmsmooth(1), pnm(5) - -2 Author - Copyright (C) 1992 by Alberto Accomazzi, Smithsonian - Astrophysical Observatory. - -1 pnmtofits - pnmtofits - convert a portable anymap into FITS format - -2 Synopis - pnmtofits [-max f] [-min f] [pnmfile] - -2 Description - Reads a portable anymap as input. Produces a FITS (Flexible - Image Transport System) file as output. The resolution of the - output file is either 8 bits/pixel, or 16 bits/pixel, depending on - the value of maxval in the input file. If the input file is a - portable bitmap or a portable graymap, the output file consists of - a single plane image (NAXIS = 2). If instead the input file is a - portable pixmap, the output file will consist of a three-plane - image (NAXIS = 3, NAXIS3 = 3). A full description of the FITS - format can be found in Astronomy & Astrophysics Supplement Series - 44 (1981), page 363. - -2 Options - Flags -min and -max can be used to set DATAMAX, DATAMIN, - BSCALE and BZERO in the FITS header, but do not cause the data to - be rescaled. - -2 See_Also - fitstopnm(1), pgm(5) - -2 Author - Copyright (C) 1989 by Wilson H. Bent (whb@hoh-2.att.com), - with modifications by Alberto Accomazzi (alberto@cfa.harvard.edu). - -1 ppmchange - ppmchange - change all pixels of one color to another in a - portable pixmap - -2 Synopis - ppmchange oldcolor newcolor [...] [ppmfile] - -2 Description - Reads a portable pixmap as input. Changes all pixels of - oldcolor to newcolor, leaving all others unchanged. Up to 256 - colors may be replaced by specifying couples of colors on the - command line. - - The colors can be specified in five ways: - - o A name, assuming that a pointer to an X11-style color - names file was compiled in. - - o An X11-style hexadecimal specifier: rgb:r/g/b, where r - g and b are each 1- to 4-digit hexadecimal numbers. - - o An X11-style decimal specifier: rgbi:r/g/b, where r g - and b are floating point numbers between 0 and 1. - - o For backwards compatibility, an old-X11-style - hexadecimal number: #rgb, #rrggbb, #rrrgggbbb, or - #rrrrggggbbbb. - - o For backwards compatibility, a triplet of numbers - separated by commas: r,g,b, where r g and b are floating - point numbers between 0 and 1. (This style was added - before MIT came up with the similar rgbi style.) - -2 See_Also - pgmtoppm(1), ppm(5) - -2 Author - Wilson H. Bent. Jr. (whb@usc.edu) with modifications by - Alberto Accomazzi (alberto@cfa.harvard.edu) - -1 xvminitoppm - xvminitoppm - convert a XV "thumbnail" picture to PPM - -2 Synopis - xvminitoppm [xvminipic] - -2 Description - Reads a XV "thumbnail" picture (a miniature picture generated - by the "VisualSchnauzer" browser) as input. Produces a portable - pixmap as output. - -2 See_Also - ppm(5), xv(1) - -2 Author - Copyright (C) 1993 by Ingo Wilken - |