PBMPLUS1L13 October 1993
NAME
pbmplus - enhanced portable bitmap toolkit
DESCRIPTION
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 N2 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:
DESCRIPTION OF CONTENTS
SEE ALSO
There are a number of related image-manipulation tools:
libpbm(3), libpgm(3), libpnm(3), libppm(3), pbm(5), pgm(5), pnm(5),
ppm(5), rasterfile(1)
AUTHOR
Distribution of 10 December 1991. ©1989, 1991 by Jef Poskanzer.
Feedback and questions are welcome. Please send them to:
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.
asciitopgm126 December 1994
NAME
asciitopgm - convert ASCII graphics into a portable graymap
SYNOPSIS
asciitopgm
[-d
divisor]
height width
[asciifile]
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.''
BUGS
The table of ASCII-to-grey values is subject to interpretation,
and, of course, depends on the typeface intended for the input.
SEE ALSO
pbmtoascii(1), pgm(5)
AUTHOR
Wilson H. Bent. Jr. (whb@usc.edu)
atktopbm126 September 1991
NAME
atktopbm - convert Andrew Toolkit raster object to portable bitmap
SYNOPSIS
atktopbm
[atkfile]
DESCRIPTION
Reads an Andrew Toolkit raster object as input.
Produces a portable bitmap as output.
SEE ALSO
pbmtoatk(1), pbm(5)
AUTHOR
©1991 by Bill Janssen.
bioradtopgm128 June 1993
NAME
bioradtopgm - convert a Biorad confocal file into a portable graymap
SYNOPSIS
bioradtopgm
[-image#]
[imagedata]
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 .
OPTIONS
BUGS
A Biorad image may be in word format. If PbmPlus is not compiled with the
``BIGGRAYS'' flag, word files can not be converted. See the Makefile.
SEE ALSO
pgm(5), pnmflip(1)
AUTHORS
©1993 by Oliver Trepte (oliver@fysik4.kth.se).
bmptoppm126 Oct 1992
NAME
bmptoppm – convert a BMP file into a portable pixmap
SYNOPSIS
bmptoppm
[bmpfile]
DESCRIPTION
Reads a Microsoft Windows or OS/2 BMP file as input.
Produces a portable pixmap as output.
SEE ALSO
ppmtobmp(1),
ppm(5)
AUTHOR
©1992 by David W. Sanderson.
brushtopbm128 August 1988
NAME
brushtopbm - convert a doodle brush file into a portable bitmap
SYNOPSIS
brushtopbm
[brushfile]
DESCRIPTION
Reads a Xerox doodle brush file as input.
Produces a portable bitmap as output.
Note that there is currently no pbmtobrush tool.
SEE ALSO
pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
cmuwmtopbm115 April 1989
NAME
cmuwmtopbm - convert a CMU window manager bitmap into a portable bitmap
SYNOPSIS
cmuwmtopbm
[cmuwmfile]
DESCRIPTION
Reads a CMU window manager bitmap as input.
Produces a portable bitmap as output.
SEE ALSO
pbmtocmuwm(1), pbm(5)
AUTHOR
©1989 by Jef Poskanzer.
fitstopnm120 September 89
NAME
fitstopnm - convert a FITS file into a portable anymap
SYNOPSIS
fitstopnm
[-image
N]
[-noraw]
[-scanmax]
[-printmax]
[-min
f]
[-max
f]
[FITSfile]
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.
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.
REFERENCES
FITS stands for Flexible Image Transport System. A full description
can be found in Astronomy & Astrophysics Supplement Series 44 (1981),
page 363.
SEE ALSO
pnmtofits(1), pgm(5), pnmflip(1)
AUTHOR
Copyright (C) 1989 by Jef Poskanzer, with modifications by
Daniel Briggs (dbriggs@nrao.edu) and Alberto
Accomazzi (alberto@cfa.harvard.edu).
fstopgm106 April 89
NAME
fstopgm - convert a Usenix FaceSaver(tm) file into a portable graymap
SYNOPSIS
fstopgm
[fsfile]
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.
SEE ALSO
pgmtofs(1), pgm(5), pgmnorm(1), pnmenlarge(1), pnmscale(1), pgmtopbm(1)
AUTHOR
©1989 by Jef Poskanzer.
g3topbm102 October 1989
NAME
g3topbm - convert a Group 3 fax file into a portable bitmap
SYNOPSIS
g3topbm
[-kludge]
[-reversebits]
[-stretch]
[g3file]
DESCRIPTION
Reads a Group 3 fax file as input.
Produces a portable bitmap as output.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
REFERENCES
The standard for Group 3 fax is defined in CCITT Recommendation T.4.
BUGS
Probably.
SEE ALSO
pbmtog3(1), pbm(5)
AUTHOR
©1989 by Paul Haeberli (paul@manray.sgi.com).
gemtopbm13 December 1988
NAME
gemtopbm - convert a GEM .img file into a portable bitmap
SYNOPSIS
gemtopbm
[-d]
gemfile
DESCRIPTION
Reads a GEM .img file as input.
Produces a portable bitmap as output.
OPTIONS
BUGS
Does not support file containing more than one plane.
Can't read from standard input.
SEE ALSO
pbmtogem(1), pbm(5)
AUTHOR
©1988 Diomidis D. Spinellis (dds@cc.ic.ac.uk).
giftopnm129 September 1993
NAME
giftopnm - convert a GIF file into a portable anymap
SYNOPSIS
giftopnm
[-verbose]
[-comments]
[-image
N]
[GIFfile]
DESCRIPTION
Reads a GIF file for input, and outputs portable anymap.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
BUGS
This does not correctly handle the Plain Text Extension of the GIF89
standard, since I did not have any example input files containing them.
SEE ALSO
ppmtogif(1), ppm(5)
AUTHOR
©1993 by David Koblas (koblas@netcom.com)
gouldtoppm120 May 1990
NAME
gouldtoppm - convert Gould scanner file into a portable pixmap
SYNOPSIS
gouldtoppm
[gouldfile]
DESCRIPTION
Reads a file produced by the Gould scanner as input.
Produces a portable pixmap as output.
SEE ALSO
ppm(5)
AUTHOR
©1990 by Stephen Paul Lesniewski.
hipstopgm124 August 89
NAME
hipstopgm - convert a HIPS file into a portable graymap
SYNOPSIS
hipstopgm
[hipsfile]
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 Processing
Laboratory, NYU.
SEE ALSO
pgm(5)
AUTHOR
©1989 by Jef Poskanzer.
icontopbm131 August 1988
NAME
icontopbm - convert a Sun icon into a portable bitmap
SYNOPSIS
icontopbm
[iconfile]
DESCRIPTION
Reads a Sun icon as input.
Produces a portable bitmap as output.
SEE ALSO
pbmtoicon(1), pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
ilbmtoppm120 June 1993
NAME
ilbmtoppm - convert an ILBM file into a portable pixmap
SYNOPSIS
ilbmtoppm
[-verbose]
[ILBMfile]
DESCRIPTION
Reads an IFF ILBM file as input.
Produces a portable pixmap as output.
Supported ILBM types are:
OPTIONS
BUGS
Probably.
REFERENCES
Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
Addison Wesley, ISBN 0–201–56775–X
SEE ALSO
ppm(5), ppmtoilbm(1)
AUTHORS
©1989 by Jef Poskanzer.
Modified June 1993 by Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
imgtoppm105 September 1989
NAME
imgtoppm - convert an Img-whatnot file into a portable pixmap
SYNOPSIS
imgtoppm
[imgfile]
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.
SEE ALSO
ppm(5)
AUTHOR
Based on a simple conversion program posted to comp.graphics by Ed Falk.
©1989 by Jef Poskanzer.
libpbm3
NAME
libpbm - functions to support portable bitmap programs
SYNOPSIS
#include <pbm.h>
cc ... libpbm.a
DESCRIPTION - PACKAGE-WIDE ROUTINES
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.
int pm_maxvaltobits( int maxval )
int pm_bitstomaxval( int bits )
Convert between a maxval and the minimum number of bits required
to hold it.
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.
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.
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.
DESCRIPTION - PBM-SPECIFIC ROUTINES
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.
void pbm_init( int* argcP, char* argv[] )
All PBM programs must call this routine.
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.
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 allocated 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.
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().
SEE ALSO
libpgm(3), libppm(3), libpnm(3)
AUTHOR
©1989, 1991 by Tony Hansen and Jef Poskanzer.
libpgm3
NAME
libpgm - functions to support portable graymap programs
SYNOPSIS
#include <pgm.h>
cc ... libpgm.a libpbm.a
DESCRIPTION
typedef ... gray;
#define PGM_MAXMAXVAL ...
extern gray pgm_pbmmaxval;
Each
gray
should contain only the values between
0
and
PGM_MAXMAXVAL.
pgm_pbmmaxval
is the maxval used when a PGM program reads a PBM file.
Normally it is 1; however, for some programs, a larger value gives better
results.
#define PGM_FORMAT ...
#define RPGM_FORMAT ...
#define PGM_TYPE PGM_FORMAT
int PGM_FORMAT_TYPE( int format )
For distinguishing different file formats and types.
void pgm_init( int* argcP, char* argv[] )
All PGM programs must call this routine.
gray** pgm_allocarray( int cols, int rows )
Allocate an array of grays.
gray* pgm_allocrow( int cols )
Allocate a row of the given number of grays.
void pgm_freearray( gray** grays, int rows )
Free the array allocated with
pgm_allocarray()
containing the given number
of rows.
void pgm_freerow( gray* grayrow )
Free a row of grays.
void pgm_readpgminit( FILE* fp, int* colsP, int* rowsP, gray* maxvalP, int* formatP )
Read the header from a PGM file, filling in the rows, cols, maxval and format
variables.
void pgm_readpgmrow( FILE* fp, gray* grayrow, int cols, gray maxval, int format )
Read a row of grays into the grayrow array.
Format, cols, and maxval were filled in by
pgm_readpgminit().
gray** pgm_readpgm( FILE* fp, int* colsP, int* rowsP, gray* maxvalP )
Read an entire graymap file into memory, returning the allocated array and
filling in the rows, cols and maxval variables.
This function combines
pgm_readpgminit(),
pgm_allocarray()
and
pgm_readpgmrow().
void pgm_writepgminit( FILE* fp, int cols, int rows, gray maxval, int forceplain )
Write the header for a portable graymap file.
The forceplain flag forces a plain-format file to be written, as opposed
to a raw-format one.
void pgm_writepgmrow( FILE* fp, gray* grayrow, int cols, gray maxval, int forceplain )
Write a row from a portable graymap.
void pgm_writepgm( FILE* fp, gray** grays, int cols, int rows, gray maxval, int forceplain )
Write the header and all data for a portable graymap.
This function combines
pgm_writepgminit()
and
pgm_writepgmrow().
SEE ALSO
libpbm(3), libppm(3), libpnm(3)
AUTHOR
©1989, 1991 by Tony Hansen and Jef Poskanzer.
libpnm3
NAME
libpnm - functions to support portable anymap programs
SYNOPSIS
#include <pnm.h>
cc ... libpnm.a libppm.a libpgm.a libpbm.a
DESCRIPTION
typedef ... xel;
typedef ... xelval;
#define PNM_MAXMAXVAL ...
extern xelval pnm_pbmmaxval;
Each
xel
contains three
xelvals,
each of which should contain 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.
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.
void pnm_init( int* argcP, char* argv[] )
All PNM programs must call this routine.
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
pnm_allocarray()
containing the given number
of rows.
void pnm_freerow( xel* xelrow )
Free a row of xels.
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 allocated array and
filling in the rows, cols, maxval, and format 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.
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().
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 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().
SEE ALSO
pbm(3), pgm(3), ppm(3)
AUTHOR
©1989, 1991 by Tony Hansen and Jef Poskanzer.
libppm3
NAME
libppm - functions to support portable pixmap programs
SYNOPSIS
#include <ppm.h>
cc ... libppm.a libpgm.a libpbm.a
DESCRIPTION
typedef ... pixel;
typedef ... pixval;
#define PPM_MAXMAXVAL ...
extern pixval ppm_pbmmaxval;
Each
pixel
contains three
pixvals,
each of which should contain 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.
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.
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 allocated array and
filling in the rows, cols and maxval variables.
This function combines
ppm_readppminit(),
ppm_allocarray()
and
ppm_readppmrow().
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().
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.
SEE ALSO
pbm(3), pgm(3)
AUTHOR
©1989, 1991 by Tony Hansen and Jef Poskanzer.
lispmtopgm106 March 1990
NAME
lispmtopgm - convert a Lisp Machine bitmap file into pgm format
SYNOPSIS
lispmtopgm
[lispmfile]
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.
SEE ALSO
pgmtolispm(1), pgm(5)
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.
AUTHOR
©1991 by Jamie Zawinski and Jef Poskanzer.
macptopbm129 March 1989
NAME
macptopbm - convert a MacPaint file into a portable bitmap
SYNOPSIS
macptopbm
[-extraskip
N]
[macpfile]
DESCRIPTION
Reads a MacPaint file as input.
Produces a portable bitmap as output.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
picttoppm(1), pbmtomacp(1), pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
The MacPaint-reading code is ©1987 by Patrick J. Naughton
(naughton@wind.sun.com).
mgrtopbm124 January 1989
NAME
mgrtopbm - convert a MGR bitmap into a portable bitmap
SYNOPSIS
mgrtopbm
[mgrfile]
DESCRIPTION
Reads a MGR bitmap as input.
Produces a portable bitmap as output.
SEE ALSO
pbmtomgr(1), pbm(5)
AUTHOR
©1989 by Jef Poskanzer.
mtvtoppm102 February 1989
NAME
mtvtoppm - convert output from the MTV or PRT ray tracers into a portable pixmap
SYNOPSIS
mtvtoppm
[mtvfile]
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.
SEE ALSO
ppm(5)
AUTHOR
©1989 by Jef Poskanzer.
pbm527 September 1991
NAME
pbm - portable bitmap file format
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 family of bitmap
conversion filters.
The definition is as follows:
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 possible,
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
different in the following ways:
SEE ALSO
atktopbm(1), brushtopbm(1), cmuwmtopbm(1), g3topbm(1),
gemtopbm(1), icontopbm(1),
macptopbm(1), mgrtopbm(1), pi3topbm(1), xbmtopbm(1),
ybmtopbm(1),
pbmto10x(1), pnmtoascii(1), pbmtoatk(1), pbmtobbnbg(1),
pbmtocmuwm(1), pbmtoepson(1),
pbmtog3(1), pbmtogem(1), pbmtogo(1), pbmtoicon(1), pbmtolj(1),
pbmtomacp(1), pbmtomgr(1), pbmtopi3(1), pbmtoplot(1), pbmtoptx(1),
pbmtox10bm(1), pbmtoxbm(1), pbmtoybm(1),
pbmtozinc(1),
pbmlife(1), pbmmake(1), pbmmask(1), pbmreduce(1),
pbmtext(1), pbmupc(1),
pnm(5), pgm(5), ppm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pbmclean12 Dec 1990
NAME
pbmclean - flip isolated pixels in portable bitmap
SYNOPSIS
pbmclean [-connect] [pbmfile]
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.
SEE ALSO
pbm(5)
AUTHOR
©1990 by Angus Duggan.
©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
documentation. This software is provided "as is" without express or
implied warranty.
pbmlife121 February 1991
NAME
pbmlife - apply Conway's rules of Life to a portable bitmap
SYNOPSIS
pbmlife
[pbmfile]
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.
SEE ALSO
pbm(5)
AUTHOR
©1988, 1991 by Jef Poskanzer.
pbmmake122 February 1989
NAME
pbmmake - create a blank bitmap of a specified size
SYNOPSIS
pbmmake
[-white|-black|-gray
]
width height
DESCRIPTION
Produces a portable bitmap of the specified width and height.
The color defaults to white.
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 prefix.
SEE ALSO
pbm(5), ppmmake(1)
AUTHOR
©1989 by Jef Poskanzer.
pbmmask108 August 1989
NAME
pbmmask - create a mask bitmap from a regular bitmap
SYNOPSIS
pbmmask
[-expand]
[pbmfile]
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 boundary between the two images less
sharp.
SEE ALSO
pnmpaste(1), pnminvert(1), pbm(5), pnmarith(1), pnmsmooth(1)
AUTHOR
©1988 by Jef Poskanzer.
pbmpscale12 Dec 1990
NAME
pbmpscale - enlarge a portable bitmap with edge smoothing
SYNOPSIS
pbmpscale N [ pbmfile ]
DESCRIPTION
Reads a portable bitmap as input, and outputs a portable bitmap
enlarged N times. Enlargement is done by pixel replication,
with some additional smoothing of corners and edges.
SEE ALSO
pnmenlarge(1), ppmscale(1), pbm(5)
AUTHOR
©1990 by Angus Duggan.
©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
documentation. This software is provided "as is" without express or
implied warranty.
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.
pbmreduce102 August 1989
NAME
pbmreduce - read a portable bitmap and reduce it N times
SYNOPSIS
pbmreduce
[-floyd|-fs|-threshold
]
[-value
val]
N
[pbmfile]
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.
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 thresholding. This gives better
results when reducing line drawings.
The
-value
flag alters the thresholding value for all quantizations.
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 prefix.
SEE ALSO
pnmenlarge(1), pnmscale(1), pgmtopbm(1), pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
pbmtext15 January 1991
NAME
pbmtext - render text into a bitmap
SYNOPSIS
pbmtext
[-font
fontfile]
[text]
DESCRIPTION
Takes the specified text, either a single line from the command
line or multiple lines from standard input, and renders it
into a bitmap.
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 everything 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.
SEE ALSO
pbm(5), pnmcut(1), pnmcrop(1)
AUTHOR
©1991 by Jef Poskanzer.
pbmto10x11 January 1990
NAME
pbmto10x - convert a portable bitmap into Gemini 10X printer graphics
SYNOPSIS
pbmto10x
[-h]
[pbmfile]
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.
OPTIONS
The resolution is normally 60H by 72V.
If the
-h
flag is specified, resolution is 120H by 144V.
You may find it useful to rotate landscape images before printing.
SEE ALSO
pbm(5)
AUTHOR
©1990 by Ken Yap.
pbmtoascii120 March 1992
NAME
pbmtoascii - convert a portable bitmap into ASCII graphics
SYNOPSIS
pbmtoascii
[-1x2|-2x4]
[pbmfile]
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.
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.
SEE ALSO
pbm(5)
AUTHOR
©1988, 1992 by Jef Poskanzer.
pbmtoatk126 September 1991
NAME
pbmtoatk - convert portable bitmap to Andrew Toolkit raster object
SYNOPSIS
pbmtoatk
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces a Andrew Toolkit raster object as output.
SEE ALSO
atktopbm(1), pbm(5)
AUTHOR
©1991 by Bill Janssen.
pbmtobg116 May 1989
NAME
pbmtobg - convert a portable bitmap into BitGraph graphics
SYNOPSIS
pbmtobg
[rasterop]
[x
y]
<
pbmfile
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.
SEE ALSO
pbm(5)
AUTHOR
Copyright 1989 by Mike Parker.
pbmtocmuwm115 April 1989
NAME
pbmtocmuwm - convert a portable bitmap into a CMU window manager bitmap
SYNOPSIS
pbmtocmuwm
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces a CMU window manager bitmap as output.
SEE ALSO
cmuwmtopbm(1), pbm(5)
AUTHOR
©1989 by Jef Poskanzer.
pbmtoepsi11992
NAME
pbmtoepsi - convert a portable bitmap into an encapsulated PostScript
style preview bitmap
SYNOPSIS
pbmtoepsi
[-bbonly]
[pbmfile]
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).
OPTIONS
SEE ALSO
pbm(5), pnmtops(1), psidtopgm(1)
AUTHOR
©1988 Jef Poskanzer
modified by Doug Crabill 1992.
pbmtoepson14 January 1991
NAME
pbmtoepson - convert a portable bitmap into Epson printer graphics
SYNOPSIS
pbmtoepson
[pbmfile]
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.
SEE ALSO
pbm(5)
AUTHOR
©1991 by John Tiller (tiller@galois.msfc.nasa.gov) and Jef Poskanzer.
pbmtog3102 October 1989
NAME
pbmtog3 - convert a portable bitmap into a Group 3 fax file
SYNOPSIS
pbmtog3
[pbmfile]
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 Recommendation T.4.
BUGS
Probably.
SEE ALSO
g3topbm(1), pbm(5)
AUTHOR
©1989 by Paul Haeberli (paul@manray.sgi.com).
pbmtogem111 March 1990
NAME
pbmtogem - convert a portable bitmap into a GEM .img file
SYNOPSIS
pbmtogem
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces a GEM .img file as output.
BUGS
It does not support compression of the data.
SEE ALSO
gemtopbm(1), pbm(5)
AUTHOR
©1988 by David Beckemeyer (bdt!david) and Jef Poskanzer.
pbmtogo124 November 1989
NAME
pbmtogo - convert a portable bitmap into compressed GraphOn graphics
SYNOPSIS
pbmtogo
[pbmfile]
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.
SEE ALSO
pbm(5)
AUTHOR
©1988, 1989 by Jef Poskanzer, Michael Haberler, and Bo Thide'.
pbmtoicon131 August 1988
NAME
pbmtoicon - convert a portable bitmap into a Sun icon
SYNOPSIS
pbmtoicon
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces a Sun icon as output.
SEE ALSO
icontopbm(1), pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
pbmtolj129 August 1988
NAME
pbmtolj - convert a portable bitmap into HP LaserJet format
SYNOPSIS
pbmtolj
[-resolution
N]
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces HP LaserJet data as output.
Note that there is no ljtopbm tool.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
pbm(5)
AUTHOR
©1988 by Jef Poskanzer and Michael Haberler.
pbmtoln0317 May 1993
NAME
pbmtoln03 - convert protable bitmap to DEC LN03+ Sixel output
SYNOPSIS
pbmtoln03
[-rltbf]
pbmfile
DESCRIPTION
Reads a portable bitmap as input.
Produces a DEC LN03+ Sixel output file.
OPTIONS
SEE ALSO
pbm(5)
AUTHOR
Tim Cook, 26 Feb 1992
pbmtolps12 Dec 1990
NAME
pbmtolps - convert portable bitmap to PostScript
SYNOPSIS
pbmtolps [ -dpi n ] [ pbmfile ]
DESCRIPTION
Reads a portable bitmap as input, and outputs PostScript.
The output Postscript uses lines instead of the image operator 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.
SEE ALSO
pgmtops(1), ppmtops(1), pbm(5)
AUTHOR
©George Phillips (phillips@cs.ubc.ca).
pbmtomacp131 August 1988
NAME
pbmtomacp - convert a portable bitmap into a MacPaint file
SYNOPSIS
pbmtomacp
[-l
left]
[-r
right]
[-b
bottom]
[-t
top]
[pbmfile]
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.
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 ).
BUGS
The source code contains comments in a language other than English.
SEE ALSO
ppmtopict(1), macptopbm(1), pbm(5), mcvert(1)
AUTHOR
©1988 by Douwe van der Schaaf (…!mcvax!uvapsy!vdschaaf).
pbmtomgr124 January 1989
NAME
pbmtomgr - convert a portable bitmap into a MGR bitmap
SYNOPSIS
pbmtomgr
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces a MGR bitmap as output.
SEE ALSO
mgrtopbm(1), pbm(5)
AUTHOR
©1989 by Jef Poskanzer.
pbmtopgm12 Dec 1990
NAME
pbmtopgm - convert portable bitmap to portable graymap by averaging areas
SYNOPSIS
pbmtopgm <width> <height> [pbmfile]
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 similar to a
special case of ppmconvol. A ppmsmooth step may be needed after pbmtopgm.
Pbmtopgm has the effect of anti-aliasing bitmaps which contain distinct
line features.
SEE ALSO
pbm(5)
AUTHOR
©1990 by Angus Duggan.
©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
documentation. This software is provided "as is" without express or
implied warranty.
NOTES
Pbmtopgm works best with odd sample width and heights.
pbmtopi3111 March 1990
NAME
pbmtopi3 - convert a portable bitmap into an Atari Degas .pi3 file
SYNOPSIS
pbmtopi3
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces an Atari Degas .pi3 file as output.
SEE ALSO
pi3topbm(1), pbm(5), ppmtopi1(1), pi1toppm(1)
AUTHOR
©1988 by David Beckemeyer (bdt!david) and Jef Poskanzer.
pbmtopk16 August 1990
NAME
pbmtopk - convert a portable bitmap into a packed (PK) format font
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]...
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.
OPTIONS
SEE ALSO
pktopbm(1), pbm(5)
AUTHOR
Adapted from Tom Rokicki's pxtopk by Angus Duggan (ajcd@dcs.ed.ac.uk).
pbmtoplot11 September 1990
NAME
pbmtoplot - convert a portable bitmap into a Unix plot(5) file
SYNOPSIS
pbmtoplot
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces a Unix
plot
file.
Note that there is no plottopbm tool - this transformation is one-way.
SEE ALSO
pbm(5), plot(5)
AUTHOR
©1990 by Arthur David Olson.
pbmtoptx131 August 1988
NAME
pbmtoptx - convert a portable bitmap into Printronix printer graphics
SYNOPSIS
pbmtoptx
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces a file of Printronix printer graphics as output.
Note that there is no ptxtopbm tool - this transformation is one way.
SEE ALSO
pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
pbmtox10bm131 August 1988
NAME
pbmtox10bm - convert a portable bitmap into an X10 bitmap
SYNOPSIS
pbmtox10bm
[pbmfile]
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.
SEE ALSO
pbmtoxbm(1), xbmtopbm(1), pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
pbmtoxbm131 August 1988
NAME
pbmtoxbm - convert a portable bitmap into an X11 bitmap
SYNOPSIS
pbmtoxbm
[pbmfile]
DESCRIPTION
Reads a portable bitmap as input.
Produces an X11 bitmap as output.
SEE ALSO
pbmtox10bm(1), xbmtopbm(1), pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
pbmtoybm106 March 1990
NAME
pgmtoybm - convert a portable bitmap into a Bennet Yee ``face'' file
SYNOPSIS
pbmtoybm
[pbmfile]
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).
SEE ALSO
ybmtopbm(1), pbm(5), face(1), face(5), xbm(1)
AUTHOR
©1991 by Jamie Zawinski and Jef Poskanzer.
pbmtozincl02 November 1990
NAME
pbmtozinc - convert a portable bitmap into a Zinc bitmap
SYNOPSIS
pbmtozinc
[pbmfile]
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.
SEE ALSO
pbm(5)
AUTHOR
©1988 by James Darrell McCauley (jdm5548@diamond.tamu.edu)
and Jef Poskanzer.
pbmupc114 March 1989
NAME
pbmupc - create a Universal Product Code bitmap
SYNOPSIS
pbmupc
[-s1|-s2]
type manufac product
DESCRIPTION
Generates a Universal Product Code symbol.
The three arguments are: a one digit product type, a five digit
manufacturer 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.
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||
SEE ALSO
pbm(5)
AUTHOR
©1989 by Jef Poskanzer.
pcxtoppm19 April 1990
NAME
pcxtoppm - convert a PCX file into a portable pixmap
SYNOPSIS
pcxtoppm
[pcxfile]
DESCRIPTION
Reads a PCX file as input.
Produces a portable pixmap as output.
SEE ALSO
ppmtopcx(1), ppm(5)
AUTHOR
©1990 by Michael Davidson.
pgm512 November 1991
NAME
pgm - portable graymap file format
DESCRIPTION
The portable graymap format is a lowest common denominator grayscale
file format.
The definition is as follows:
Here is an example of a small graymap in this format:
P2
# feep.pgm
24 7
15
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 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 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 possible,
accepting anything that looks remotely like a graymap.
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:
Note that this raw format can only be used for maxvals less than
or equal to 255.
If you use the
pgm
library and try to write a file with a larger maxval,
it will automatically fall back on the slower but more general plain
format.
SEE ALSO
fitstopgm(1), fstopgm(1), hipstopgm(1), lispmtopgm(1), psidtopgm(1),
rawtopgm(1),
pgmbentley(1), pgmcrater(1), pgmedge(1), pgmenhance(1), pgmhist(1), pgmnorm(1),
pgmoil(1), pgmramp(1), pgmtexture(1),
pgmtofits(1), pgmtofs(1), pgmtolispm(1), pgmtopbm(1),
pnm(5), pbm(5), ppm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pgmbentley111 January 1991
NAME
pgmbentley - Bentleyize a portable graymap
SYNOPSIS
pgmbentley
[pgmfile]
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.
SEE ALSO
pgmoil(1), ppmrelief(1), pgm(5)
AUTHOR
©1990 by Wilson Bent (whb@hoh-2.att.com).
pgmcrater115 October 1991
NAME
pgmcrater - create cratered terrain by fractal forgery
SYNOPSIS
pgmcrater
'ti 15
[-number
n]
[-height|-ysize
s]
[-width|-xsize
s]
[-gamma
g]
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 distributed 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
pixels and lends a mellow ``telescopic image'' feel to the overall
picture.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
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 terrain.
SEE ALSO
pgm(5),
pnmgamma(1),
pnmsmooth(1)
AUTHOR
1
John Walker
Autodesk SA
Avenue des Champs-Montants 14b
CH-2074 MARIN
Suisse/Schweiz/Svizzera/Svizra/Switzerland
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 restrictions. 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 introduction by James Gleick and
detailed explanations by Rudy Rucker of the mathematics and algorithms
used by each program.
pgmedge104 February 1990
NAME
pgmedge - edge-detect a portable graymap
SYNOPSIS
pgmedge
[pgmfile]
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.
SEE ALSO
pgmenhance(1), pgmtopbm(1), pgm(5), pbm(5)
AUTHOR
©1991 by Jef Poskanzer.
pgmenhance113 January 1989
NAME
pgmenhance - edge-enhance a portable graymap
SYNOPSIS
pgmenhance
[-N]
[pgmfile]
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.
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.
SEE ALSO
pgmedge(1), pgm(5), pbm(5)
AUTHOR
©1989 by Jef Poskanzer.
pgmhist128 February 1989
NAME
pgmhist - print a histogram of the values in a portable graymap
SYNOPSIS
pgmhist
[pgmfile]
DESCRIPTION
Reads a portable graymap as input.
Prints a histogram of the gray values.
SEE ALSO
pgmnorm(1), pgm(5), ppmhist(1)
AUTHOR
©1989 by Jef Poskanzer.
pgmkernel110 December 1992
NAME
pgmkernel - generate a convolution kernel
SYNOPSIS
pgmkernel [–weightw] width [height]
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.
OPTIONS
The optional
-weight
flag should be a real number greater than -1.
The default value is 6.0.
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.
SEE ALSO
pnmconvol(1), pnmsmooth(1)
AUTHOR
Alberto Accomazzi (alberto@cfa.harvard.edu).
pgmnoise116 November 1993
NAME
pgmnoise - create a graymap made up of white noise
SYNOPSIS
pgmnoise
width height
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.
SEE ALSO
pgm(5)
AUTHOR
©1993 by Frank Neumann.
pgmnorm128 February 1989
NAME
pgmnorm - normalize the contrast in a portable graymap
SYNOPSIS
pgmnorm
[-bpercent
N
|
-bvalue
N]
[-wpercent
N
|
-wvalue
N]
[pgmfile]
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.
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 prefix.
SEE ALSO
pgmhist(1), pgm(5)
AUTHOR
Partially based on the fbnorm filter in Michael Mauldin's ``Fuzzy
Pixmap''
package.
©1989 by Jef Poskanzer.
pgmoil111 January 1991
NAME
pgmoil - turn a portable graymap into an oil painting
SYNOPSIS
pgmoil
[-n
N]
[pgmfile]
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.
OPTIONS
The optional
-n
flag controls the size of the area smeared. The default value is 3.
BUGS
Takes a long time to run.
SEE ALSO
pgmbentley(1), ppmrelief(1), pgm(5)
AUTHOR
©1990 by Wilson Bent (whb@hoh-2.att.com).
pgmramp124 November 1989
NAME
pgmramp - generate a grayscale ramp
SYNOPSIS
pgmramp
-lr|
-tb
|
-rectangle|
-ellipse
width height
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.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
pnmarith(1), pgm(5)
AUTHOR
©1989 by Jef Poskanzer.
pgmtexture122 Aug 1991
NAME
pgmtexture - calculate textural features on a portable graymap
SYNOPSIS
pgmtexture
[
-d
d]
[
pgmfile]
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:
Algorithm taken from:
Haralick, R.M., K. Shanmugam, and I. Dinstein. 1973. Textural features
for image classification.
IEEE Transactions on Systems, Man,
and Cybertinetics,
SMC-3(6):610-621.
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.
REFERENCES
IEEE Transactions on Systems, Man,
and Cybertinetics,
SMC-3(6):610-621.
SEE ALSO
pgm(5), pnmcut(1)
AUTHOR
©1991 by Texas Agricultural Experiment Station, employer for
hire of James Darrell McCauley.
pgmtofits120 September 1989
NAME
pgmtofits - convert a portable graymap into FITS format
SYNOPSIS
pgmtofits
[pgmfile]
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 Supplement Series 44 (1981),
page 363.
SEE ALSO
fitstopgm(1), pgm(5)
AUTHOR
©1989 by Wilson H. Bent (whb@hoh-2.att.com).
pgmtofs118 May 1990
NAME
pgmtofs - convert portable graymap to Usenix FaceSaver(tm) format
SYNOPSIS
pgmtofs
[pgmfile]
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.
SEE ALSO
fstopgm(1), pgm(5)
AUTHOR
©1991 by Jef Poskanzer.
pgmtolispm106 March 1990
NAME
pgmtolispm - convert a portable graymap into Lisp Machine format
SYNOPSIS
pgmtolispm
[pgmfile]
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.
SEE ALSO
lispmtopgm(1), pgm(5)
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.
AUTHOR
©1991 by Jamie Zawinski and Jef Poskanzer.
pgmtopbm126 July 1988
NAME
pgmtopbm - convert a portable graymap into a portable bitmap
SYNOPSIS
pgmtopbm
[-floyd|-fs|-threshold
|-dither8|-d8|-cluster3
|-c3|-cluster4|-c4
|-cluster8|-c8]
[-value
val]
[pgmfile]
DESCRIPTION
Reads a portable graymap as input.
Produces a portable bitmap as output.
Note that there is no pbmtopgm converter, because any pgm program can
read pbm files automagically.
OPTIONS
The default quantization method is boustrophedonic Floyd-Steinberg error
diffusion
(-floyd
or
-fs).
Also available are simple thresholding
(-threshold);
Bayer's ordered dither
(-dither8)
with a 16x16 matrix; and three different sizes of 45-degree clustered-dot dither
(-cluster3,
-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 prefix.
REFERENCES
The only reference you need for this stuff is ``Digital Halftoning'' by
Robert Ulichney, MIT Press, ISBN 0–262–21009–6.
SEE ALSO
pbmreduce(1), pgm(5), pbm(5), pnmconvol(1)
AUTHOR
©1989 by Jef Poskanzer.
pgmtoppm111 January 1991
NAME
pgmtoppm - colorize a portable graymap into a portable pixmap
SYNOPSIS
pgmtoppm
colorspec
[pgmfile]
pgmtoppm
colorspec1-colorspec2
[pgmfile]
pgmtoppm -map
mapfile
[pgmfile]
DESCRIPTION
Reads a portable graymap as input.
Colorizes it by multiplying 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:
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.
SEE ALSO
rgb3toppm(1), ppmtopgm(1), ppmtorgb3(1), ppm(5), pgm(5)
AUTHOR
©1991 by Jef Poskanzer.
pi1toppm119 July 1990
NAME
pi1toppm - convert an Atari Degas .pi1 into a portable pixmap
SYNOPSIS
pi1toppm
[pi1file]
DESCRIPTION
Reads an Atari Degas .pi1 file as input.
Produces a portable pixmap as output.
SEE ALSO
ppmtopi1(1), ppm(5), pi3topbm(1), pbmtopi3(1)
AUTHOR
©1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
pi3topbm111 March 1990
NAME
pi3topbm - convert an Atari Degas .pi3 file into a portable bitmap
SYNOPSIS
pi3topbm
[pi3file]
DESCRIPTION
Reads an Atari Degas .pi3 file as input.
Produces a portable bitmap as output.
SEE ALSO
pbmtopi3(1), pbm(5), pi1toppm(1), ppmtopi1(1)
AUTHOR
©1988 by David Beckemeyer (bdt!david) and Diomidis D. Spinellis.
picttoppm129 November 1991
NAME
picttoppm - convert a Macintosh PICT file into a portable pixmap
SYNOPSIS
picttoppm
[
-verbose]
[
-fullres]
[
-noheader]
[
pictfile]
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.
OPTIONS
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.
SEE ALSO
Inside Macintosh volume 5,
ppmtopict(1),
ppm(5)
AUTHOR
©1989 George Phillips (phillips@cs.ubc.ca).
pjtoppm114 July 1991
NAME
pjtoppm - convert an HP PaintJet file to a portable pixmap
SYNOPSIS
pjtoppm
[paintjet]
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 convert most raster image files.
REFERENCES
HP PaintJet XL Color Graphics Printer User's Guide
SEE ALSO
ppmtopj(1)
AUTHOR
©1991 by Christos Zoulas.
pktopbm16 August 1990
NAME
pktopbm - convert packed (PK) format font into portable bitmap(s)
SYNOPSIS
pktopbm pkfile[.pk] [-c num] pbmfile ...
DESCRIPTION
Reads a packed (PK) font file as input, and produces portable 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.
OPTIONS
SEE ALSO
pbmtopk(1), pbm(5)
AUTHOR
Adapted from Tom Rokicki's pxtopk by Angus Duggan (ajcd@dcs.ed.ac.uk.
pnm527 September 1991
NAME
pnm - portable anymap file format
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.
SEE ALSO
anytopnm(1), rasttopnm(1), tifftopnm(1), xwdtopnm(1),
pnmtops(1), pnmtorast(1), pnmtotiff(1), pnmtoxwd(1),
pnmarith(1), pnmcat(1), pnmconvol(1), pnmcrop(1), pnmcut(1),
pnmdepth(1), pnmenlarge(1), pnmfile(1), pnmflip(1), pnmgamma(1),
pnmindex(1), pnminvert(1), pnmmargin(1), pnmnoraw(1), pnmpaste(1),
pnmrotate(1), pnmscale(1), pnmshear(1), pnmsmooth(1), pnmtile(1),
ppm(5), pgm(5), pbm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmalias130 April 1992
NAME
pnmalias - antialias a portable anyumap.
SYNOPSIS
pnmalias
[-bgcolor
color]
[-fgcolor
color]
[-bonly]
[-fonly]
[-balias]
[-falias]
[-weight
w]
[pnmfile]
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.
OPTIONS
–bgcolor
colorb,
–fgcolor
colorf
1set 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:
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.
1
–bonly,
–fonly
1Apply anti-aliasing only to background
(–bonly),
or foreground
(–fonly)
pixels.
1
–balias,
–falias
1Apply 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.
1
–weight
w
1Use
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.
SEE ALSO
pbmtext(1), pnmsmooth(1), pnm(5)
AUTHOR
Copyright (C) 1992 by Alberto Accomazzi, Smithsonian Astrophysical Observatory.
pnmarith126 August 1993
NAME
pnmarith - perform arithmetic on two portable anymaps
SYNOPSIS
pnmarith
-add|-subtract|-multiply|-difference
pnmfile1 pnmfile2
DESCRIPTION
Reads two portable anymaps as input.
Performs the specified arithmetic operation,
and produces a portable anymap as output.
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 prefix.
SEE ALSO
pbmmask(1), pnmpaste(1), pnminvert(1), pnm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer..
Lightly modified by Marcel Wijkstra (wijkstra@fwi.uva.nl).
pnmcat112 March 1989
NAME
pnmcat - concatenate portable anymaps
SYNOPSIS
pnmcat
[-white|-black]
-leftright|-lr
[-jtop|-jbottom]
pnmfile pnmfile
...
pnmcat
[-white|-black]
-topbottom|-tb
[-jleft|-jright]
pnmfile pnmfile
...
DESCRIPTION
Reads portable anymaps as input.
Concatenates them either left to right or top to bottom, and produces a
portable anymap as output.
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 prefix.
SEE ALSO
pnm(5)
AUTHOR
©1989 by Jef Poskanzer.
pnmcomp121 February 1989
NAME
pnmcomp - composite two portable anymap files together
SYNOPSIS
pnmcomp
[-invert]
[-xoffN]
[-yoffN]
[-alphapgmfile]
overlay
[pnm-input]
[pnm-output]
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.
SEE ALSO
pnm(5)
AUTHOR
©1992 by David Koblas (koblas@mips.com).
pnmconvol113 January 1991
NAME
pnmconvol - general MxN convolution on a portable anymap
SYNOPSIS
pnmconvol
convolutionfile
[pnmfile]
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 average of the
nearby pixels. The weights and the area to average 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.
However, if you want to use a pixmap and do a different convolution to
different colors, you can certainly do that.
SEE ALSO
pnmsmooth(1), pnm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmcrop125 February 1989
NAME
pnmcrop - crop a portable anymap
SYNOPSIS
pnmcrop
[-white|-black]
[-left]
[-right]
[-top]
[-bottom]
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Removes edges that are the background color,
and produces a portable anymap as output.
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.
The options
-left, -right, -top
and
-bottom
restrict cropping to the sides specified. The default is to crop all sides of
the image.
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
pnmcut(1), pnm(5)
AUTHOR
©1989 by Jef Poskanzer.
pnmcut121 February 1989
NAME
pnmcut - cut a rectangle out of a portable anymap
SYNOPSIS
pnmcut
x y width height
[pnmfile]
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, respectively.
SEE ALSO
pnm(5)
AUTHOR
©1989 by Jef Poskanzer.
pnmdepth112 January 1991
NAME
pnmdepth - change the maxval in a portable anymap
SYNOPSIS
pnmdepth
newmaxval
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Scales all the pixel values, and writes out the image with the new maxval.
Scaling 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 maxval.
For instance, if you want the color values to be five bits wide,
use a maxval of 31, not 32.
SEE ALSO
pnm(5), ppmquant(1), ppmdither(1)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmenlarge126 February 1989
NAME
pnmenlarge - read a portable anymap and enlarge it N times
SYNOPSIS
pnmenlarge
N
[pnmfile]
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.
SEE ALSO
pbmreduce(1), pnmscale(1), pnmsmooth(1), pnm(5)
AUTHOR
©1989 by Jef Poskanzer.
pnmfile19 January 1991
NAME
pnmfile - describe a portable anymap
SYNOPSIS
pnmfile
[pnmfile]
...
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
particularly pretty.
SEE ALSO
pnm(5), file(1)
AUTHOR
©1991 by Jef Poskanzer.
pnmflip125 July 1989
NAME
pnmflip - perform one or more flip operations on a portable anymap
SYNOPSIS
pnmflip
[-leftright|-lr]
[-topbottom|-tb]
[-transpose|-xy]
[-rotate90|-r90|-ccw
]
[-rotate270|-r270|-cw
]
[-rotate180|-r180]
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Performs one or more flip operations, in the order specified, and
writes out a portable anymap.
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 prefix.
SEE ALSO
pnmrotate(1), pnm(5)
AUTHOR
©1989 by Jef Poskanzer.
pnmgamma112 January 1991
NAME
pnmgamma - perform gamma correction on a portable anymap
SYNOPSIS
pnmgamma
value
[pnmfile]
pnmgamma
redvalue greenvalue bluevalue
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Performs gamma correction,
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.
SEE ALSO
pnm(5)
AUTHOR
©1991 by Bill Davidson and Jef Poskanzer.
pnminvert108 August 1989
NAME
pnminvert - invert a portable anymap
SYNOPSIS
pnminvert
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Inverts it black for white and produces a portable anymap as output.
SEE ALSO
pnm(5)
AUTHOR
©1989 by Jef Poskanzer.
pnmnlfilt15 February 1993
NAME
pnmnlfilt - non-linear filters: smooth, alpha trim mean, optimal
estimation smoothing, edge enhancement.
SYNOPSIS
pnmnlfilt
alpha
radius
[pnmfile]
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 (i.e.,
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 <= 0.5)
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 (i.e., 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 <= 2.0)
This type of filter applies a smoothing filter adaptively over the image.
For each pixel the variance of the surrounding 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 controls the effective radius, but it probably advisable to
leave the radius between 0.8 and 1.0 for the variance calculation 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 >= -0.9)
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 enhancement is the direct opposite of
smoothing.
For reducing color quantization noise in images (i.e., 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 possibly 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.
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 ``Converting 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(1),
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.
SEE ALSO
pgmenhance(1), pnmconvol(1), pnm(5)
BUGS
Integers and tables may overflow if PPM_MAXMAXVAL is greater than 255.
AUTHOR
Graeme W. Gill graeme@labtam.oz.au
pnmnoraw18 January 1991
NAME
pnmnoraw - force a portable anymap into plain format
SYNOPSIS
pnmnoraw
[pnmfile]
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 PBMPLUS_RAWBITS
compile-time option.
SEE ALSO
pnm(5)
AUTHOR
©1991 by Jef Poskanzer.
pnmpad12 Dec 1990
NAME
pnmpad - add borders to portable anymap
SYNOPSIS
pnmpad [-white|-black] [-l#] [-r#] [-t#] [-b#] [pnmfile]
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).
SEE ALSO
pbmmake(1), pnmpaste(1), pbm(5)
AUTHOR
©1990 by Angus Duggan.
©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
documentation. This software is provided "as is" without express or
implied warranty.
pnmpaste121 February 1991
NAME
pnmpaste - paste a rectangle into a portable anymap
SYNOPSIS
pnmpaste
[-replace|-or|-and
|-xor]
frompnmfile x y
[intopnmfile]
DESCRIPTION
Reads two portable anymaps as input.
Inserts the first anymap into the second at the specified location,
and produces a portable anymap the same size as the second as output.
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 bitmaps.
These operations act as if white is TRUE and black is FALSE.
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
pnmcut(1), pnminvert(1), pnmarith(1), pnm(5), pbmmask(1)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmrotate112 January 1991
NAME
pnmrotate - rotate a portable anymap by some angle
SYNOPSIS
pnmrotate
[-noantialias]
angle
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Rotates it by the specified 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
pnmrotate
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 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 prefix.
REFERENCES
``A Fast Algorithm for General Raster Rotation'' by Alan Paeth,
Graphics Interface '86, pp. 77-81.
SEE ALSO
pnmshear(1), pnmflip(1), pnm(5), ppmquant(1)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmscale112 January 1991
NAME
pnmscale - scale a portable anymap
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]
DESCRIPTION
Reads a portable anymap as input.
Scales it by the specified 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 prefix.
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.
SEE ALSO
pbmreduce(1), pnmenlarge(1), pnmsmooth(1), pnm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmshear112 January 1991
NAME
pnmshear - shear a portable anymap by some angle
SYNOPSIS
pnmshear
[-noantialias]
angle
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Shears it by the specified 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 pixels 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 prefix.
SEE ALSO
pnmrotate(1), pnmflip(1), pnm(5), ppmquant(1)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmtile113 May 1989
NAME
pnmtile - replicate a portable anymap into a specified size
SYNOPSIS
pnmtile
width height
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Replicates it until it is the specified size,
and produces a portable anymap as output.
SEE ALSO
pnm(5)
AUTHOR
©1989 by Jef Poskanzer.
pnmtofits15 Dec 1992
NAME
pnmtofits - convert a portable anymap into FITS format
SYNOPSIS
pnmtofits
[–max
f]
[–min
f]
[pnmfile]
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.
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.
SEE ALSO
fitstopnm(1), pgm(5)
AUTHOR
Copyright (C) 1989 by Wilson H. Bent (whb@hoh-2.att.com), with
modifications
by Alberto Accomazzi (alberto@cfa.harvard.edu).
pnmtops126 October 1991
NAME
pnmtops - convert portable anymap to PostScript
SYNOPSIS
pnmtops
[-scale
s]
[-turn|-noturn]
[-rle|-runlength]
[-dpi
n]
[-width
n]
[-height
n]
[pnmfile]
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 package,
it comes with a pstoppm script.
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 compression. 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 prefix.
SEE ALSO
pnm(5), psidtopgm(1)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmtorast112 January 1991
NAME
pnmtorast - convert a portable pixmap into a Sun rasterfile
SYNOPSIS
pnmtorast
[-standard|-rle]
[pnmfile]
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.
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 prefix.
SEE ALSO
rasttopnm(1), pnm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
pnmtosir120 March 1991
NAME
pnmtosir - convert a portable anymap into a Solitaire format
SYNOPSIS
pnmtosir
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Produces a Solitaire Image Recorder format.
pnmtosir produces an MGI TYPE 17 file for
pbm
and
pgm
files.
For
ppm,
it writes a MGI TYPE 11 file.
SEE ALSO
sirtopnm(1), pnm(5)
BUGS
AUTHOR
©1991 by Marvin Landis.
pnmtotiff113 January 1991
NAME
pnmtotiff - convert a a portable anymap into a TIFF file
SYNOPSIS
pnmtotiff
[-none|-packbits|
-lzw|-g3|-g4]
[-2d]
[-fill]
[-predictor
n]
[-msb2lsb|-lsb2msb]
[-rowsperstrip
n]
[pnmfile]
DESCRIPTION
Reads a portable anymap as input.
Produces a TIFF file as output.
OPTIONS
By default,
pnmtotiff
creates a TIFF file with LZW compression.
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.
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.
SEE ALSO
tifftopnm(1), pnm(5)
AUTHOR
Derived by Jef Poskanzer from ras2tiff.c, which is
©1990 by Sun Microsystems, Inc.
Author: Patrick J. Naughton (naughton@wind.sun.com).
pnmtoxwd124 September 1991
NAME
pnmtoxwd - convert a portable anymap into an X11 window dump
SYNOPSIS
pnmtoxwd
[-pseudodepth
n]
[-directcolor]
[pnmfile]
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.
SEE ALSO
xwdtopnm(1), pnm(5), xwud(1)
AUTHOR
©1989, 1991 by Jef Poskanzer.
ppm527 September 1991
NAME
ppm - portable pixmap file format
DESCRIPTION
The portable pixmap format is a lowest common denominator color image
file format.
The definition is as follows:
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 possible,
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:
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.
SEE ALSO
giftoppm(1), gouldtoppm(1), ilbmtoppm(1), imgtoppm(1), mtvtoppm(1),
pcxtoppm(1), pgmtoppm(1), pi1toppm(1), picttoppm(1), pjtoppm(1), qrttoppm(1),
rawtoppm(1), rgb3toppm(1), sldtoppm(1), spctoppm(1), sputoppm(1), tgatoppm(1),
ximtoppm(1), xpmtoppm(1), yuvtoppm(1),
ppmtoacad(1), ppmtogif(1), ppmtoicr(1), ppmtoilbm(1), ppmtopcx(1), ppmtopgm(1),
ppmtopi1(1), ppmtopict(1), ppmtopj(1), ppmtopuzz(1), ppmtorgb3(1),
ppmtosixel(1), ppmtotga(1), ppmtouil(1), ppmtoxpm(1), ppmtoyuv(1),
ppmdither(1), ppmforge(1), ppmhist(1), ppmmake(1), ppmpat(1), ppmquant(1),
ppmquantall(1), ppmrelief(1),
pnm(5), pgm(5), pbm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
ppmbrighten120 Nov 1990
NAME
ppmbrighten - change an images Saturation and Value from an HSV map
SYNOPSIS
ppmbrighten [-n] [-s <+- saturation>] [-v <+- value>] <ppmfile>
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).
SEE ALSO
pgmnorm(1), ppm(5)
AUTHOR
©1990 by Brian Moffet.
©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
documentation. This software is provided "as is" without express or
implied warranty.
NOTES
This program does not change the number of colors.
ppmchange13 December 1993
NAME
ppmchange - change all pixels of one color to another in a portable pixmap
SYNOPSIS
ppmchange
oldcolor newcolor [...]
[ppmfile]
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:
SEE ALSO
pgmtoppm(1), ppm(5)
AUTHOR
Wilson H. Bent. Jr. (whb@usc.edu)
with modifications by Alberto Accomazzi (alberto@cfa.harvard.edu)
ppmdim116 November 1993
NAME
ppmdim - dim a portable pixmap down to total blackness
SYNOPSIS
ppmdim
dimfactor
[ppmfile]
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.
SEE ALSO
ppm(5), ppmflash(1), pnmgamma(1), ppmbrighten(1)
AUTHOR
Copyright (C) 1993 by Frank Neumann
ppmdist122 July 1992
NAME
ppmdist - simplistic grayscale assignment for machine generated, color images
SYNOPSIS
ppmdist
[-intensity|-frequency]
[ppmfile]
DESCRIPTION
Reads a portable pixmap as input, performs a simplistic grayscale
assignment intended for use with grayscale or bitmap printers.
Often conversion from ppm to pgm will yield an image with contrast too
low for good printer output. The program maximizes 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).
OPTIONS
BUGS
Helpful only for images with a very small number of colors.
Perhaps should have been an option to ppmtopgm(1).
SEE ALSO
ppmtopgm(1), ppmhist(1), ppm(5)
AUTHOR
©1993 by Dan Stromberg.
ppmdither114 July 1991
NAME
ppmdither - ordered dither for color images
SYNOPSIS
ppmdither
[
-dim
dimension]
[
-red
shades]
[
-green
shades]
[
-blue
shades]
[
ppmfile]
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.
OPTIONS
SEE ALSO
pnmdepth(1), ppmquant(1), ppm(5)
AUTHOR
©1991 by Christos Zoulas.
ppmflash116 November 1993
NAME
ppmflash - brighten a picture up to complete white-out
SYNOPSIS
ppmflash
flashfactor
[ppmfile]
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.
SEE ALSO
ppm(5), ppmdim(1), pnmgamma(1), ppmbrighten(1)
AUTHOR
Copyright (C) 1993 by Frank Neumann
ppmforge125 October 1991
NAME
ppmforge - fractal forgeries of clouds, planets, and starry skies
SYNOPSIS
ppmforge
[-clouds]
'in +9n
[-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]
-4.5em
DESCRIPTION
ppmforge
generates three kinds of ``random fractal forgeries,'' the term coined
by Richard F. Voss of the IBM Thomas J. Watson Research Center for
seemingly realistic pictures of natural objects generated by simple
algorithms embodying randomness and fractal self-similarity. The
techniques 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 generated 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 preparation 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 increases as the square of the
mesh size. The fractal dimension, 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 amplitudes. 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
option. 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:
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 produces better looking planets.
ppmquant
tends to create discrete colour bands, particularly in the oceans,
which are unrealistic and distracting. The number of colours in starry
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.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
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.
SEE ALSO
pnmcut(1),
pnmdepth(1),
ppmdither(1),
ppmquant(1),
ppm(5)
AUTHOR
1
John Walker
Autodesk SA
Avenue des Champs-Montants 14b
CH-2074 MARIN
Suisse/Schweiz/Svizzera/Svizra/Switzerland
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 restrictions. 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 introduction by James Gleick and
detailed explanations by Rudy Rucker of the mathematics and algorithms
used by each program.
ppmhist103 April 1989
NAME
ppmhist - print a histogram of a portable pixmap
SYNOPSIS
ppmhist
[ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Generates a histogram of the colors in the pixmap.
SEE ALSO
ppm(5), pgmhist(1)
AUTHOR
©1989 by Jef Poskanzer.
ppmmake124 September 1991
NAME
ppmmake - create a pixmap of a specified size and color
SYNOPSIS
ppmmake
color width height
DESCRIPTION
Produces a portable pixmap of the specified color, width, and height.
The color can be specified in five ways:
SEE ALSO
ppm(5), pbmmake(1)
AUTHOR
©1991 by Jef Poskanzer.
ppmmix116 November 1993
NAME
ppmmix - blend together two portable pixmaps
SYNOPSIS
ppmmix
fadefactor
ppmfile1 ppmfile2
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.
SEE ALSO
ppm(5)
AUTHOR
©1993 by Frank Neumann.
ppmpat104 September 1989
NAME
ppmpat - make a pretty pixmap
SYNOPSIS
ppmpat
-gingham2|-g2|-gingham3|
-g3|-madras|-tartan|
-poles|-squig|-camo|
-anticamo
width height
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 routines.
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 background.
OPTIONS
The different flags specify various different pattern types:
All flags can be abbreviated to their shortest unique prefix.
REFERENCES
Some of the patterns are from ``Designer's Guide to Color 3'' by Jeanne Allen.
SEE ALSO
pnmtile(1), ppmquant(1), ppm(5)
AUTHOR
©1989 by Jef Poskanzer.
ppmquant112 January 1991
NAME
ppmquant - quantize the colors in a portable pixmap down to a specified number
SYNOPSIS
ppmquant
[-floyd|-fs]
ncolors
[ppmfile]
ppmquant
[-floyd|-fs]
-map
mapfile
[ppmfile]
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
specifying your own set of colors with the
-map
flag. The
mapfile
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 diffusion 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 prefix.
REFERENCES
``Color Image Quantization for Frame Buffer Display'' by Paul Heckbert,
SIGGRAPH '82 Proceedings, page 297.
SEE ALSO
ppmquantall(1), pnmdepth(1), ppmdither(1), ppm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
ppmquantall127 July 1990
NAME
ppmquantall - run ppmquant on a bunch of files all at once, so they share a common colormap
SYNOPSIS
ppmquantall
ncolors ppmfile
...
DESCRIPTION
Takes a bunch of portable pixmap as input.
Chooses
ncolors
colors to best represent all of the images, maps the
existing colors to the new ones, and
overwrites the input files
with the new quantized versions.
Verbose explanation: Let's say you've got a dozen pixmaps that you want
to display on the screen all at the same time. Your screen can only
display 256 different colors, but the pixmaps have a total of a thousand
or so different colors. For a single pixmap you solve this problem with
ppmquant;
this script solves it for multiple pixmaps. All it does is
concatenate them together into one big pixmap, run
ppmquant
on that, and then split it up into little pixmaps again.
(Note that another way to solve this problem is to pre-select a set of
colors and then use
ppmquant's
-map
option to separately quantize each pixmap to that set.)
SEE ALSO
ppmquant(1), ppm(5)
BUGS
It's a csh script.
Csh scripts are not portable to System V.
Scripts in general are not portable to non-Unix environments.
AUTHOR
Copyright (C) 1991 by Jef Poskanzer.
PPMQVGA1local
'NAME
ppmqvga - 8 plane quantization
'SYNOPSIS
ppmqvga [ options ] [ input file ]
'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.
-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 mapping. May be repeated to generate
loads of internal table output, but generally only useful once.
EXAMPLES
ppmqvga -d my_image.ppm | ppmtogif >my_image.gif
tgatoppm zombie.tga | ppmqvga | ppmtotif > zombie.tif
SEE ALSO
ppmquant
DIAGNOSTICS
Error messages if problems, various levels of optional progress reporting.
LIMITATIONS
none known.
AUTHOR
Original by Lyle Rains (lrains@netcom.com) as ppmq256 and ppmq256fs
combined, documented, and enhanced by Bill Davidsen (davidsen@crd.ge.com)
Copyright
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.
ppmrelief111 January 1991
NAME
ppmrelief - run a Laplacian relief filter on a portable pixmap
SYNOPSIS
ppmrelief
[ppmfile]
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 Photography'' by Holzmann,
equation 3.19.
It's a sort of edge-detection.
SEE ALSO
pgmbentley(1), pgmoil(1), ppm(5)
AUTHOR
©1990 by Wilson Bent (whb@hoh-2.att.com).
ppmshift116 November 1993
NAME
ppmshift - shift lines of a portable pixmap left or right by a random amount
SYNOPSIS
ppmshift
shift
[ppmfile]
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.
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:
1 # 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.
SEE ALSO
ppm(5), pnmcut(1), pnmflip(1), ppmdim(1), pnmcat(1)
AUTHOR
©1993 by Frank Neumann
ppmspread116 November 1993
NAME
ppmspread - displace a portable pixmap's pixels by a random amount
SYNOPSIS
ppmspread
amount
[ppmfile]
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
).
SEE ALSO
ppm(5), pnmconvol(1)
AUTHOR
©1993 by Frank Neumann
ppmtoacad110 October 1991
NAME
ppmtoacad - convert portable pixmap to AutoCAD database or slide
SYNOPSIS
ppmtoacad
'in 15n
[
-dxb][
-poly][
-background
colour][
-white][
-aspect
ratio][
-8][
ppmfile]
-7.5em
DESCRIPTION
Reads a portable pixmap as input. Produces an AutoCADlide file or
binary database import (.dxb) file as output.
If no
ppmfile
is specified, input is read from standard input.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
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.
SEE ALSO
AutoCAD Reference Manual:
Slide File Format
and
Binary Drawing Interchange (DXB) Files,
ppm(5)
AUTHOR
1
John Walker
Autodesk SA
Avenue des Champs-Montants 14b
CH-2074 MARIN
Suisse/Schweiz/Svizzera/Svizra/Switzerland
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 restrictions. This software is provided ``as
is'' without express or implied warranty.
AutoCAD and Autodesk are registered trademarks of Autodesk, Inc.
ppmtobmp126 Oct 1992
NAME
ppmtobmp – convert a portable pixmap into a BMP file
SYNOPSIS
ppmtobmp
[
–windows][
–os2][
ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces a Microsoft Windows or OS/2 BMP file as output.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
bmptoppm(1),
ppm(5)
AUTHOR
©1992 by David W. Sanderson.
ppmtogif130 June 1993
NAME
ppmtogif - convert a portable pixmap into a GIF file
SYNOPSIS
ppmtogif
[
-interlace][
-sort][
-map
mapfile ]
[
ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces a GIF file as output.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
giftoppm(1), ppmquant(1), ppm(5)
AUTHOR
Based on GIFENCOD by David Rowley (mgardi@watdcsu.waterloo.edu).
Lempel-Ziv compression based on ``compress''.
©1989 by Jef Poskanzer.
ppmtoicr130 July 1990
NAME
ppmtoicr - convert a portable pixmap into NCSA ICR format
SYNOPSIS
ppmtoicr
[-windowname
name][-expand
expand][-display
display][-rle][ppmfile]
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.
OPTIONS
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:
giftoppm giffile | ppmtoicr -w giffile -r -e 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.
SEE ALSO
ppm(5)
NCSA Telnet for the Macintosh,
University of Illinois at Urbana-Champaign (1989)
AUTHOR
©1990 by Kanthan Pillay (svpillay@Princeton.EDU),
Princeton University Computing and Information Technology.
ppmtoilbm129 August 1993
NAME
ppmtoilbm - convert a portable pixmap into an ILBM file
SYNOPSIS
ppmtoilbm
[
-maxplanes|
-mp
N][
-fixplanes|
-fp
N][
-ham6|
-ham8][
-dcbits|
-dcplanesr
gb
]
[
-normal|
-hamif|
-hamforce|
-24if|
-24force|-dcif
|-dcforce
|-cmaponly
]
[
-ecs|
-aga][
-mapppmfile
]
[
ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces an ILBM file as output.
Supported ILBM types are:
OPTIONS
Options marked with (*) can be prefixed with a ``no'',
e.g., ``-nohamif''. All options can be abbreviated to
their shortest unique prefix.
BUGS
Needs a real colormap selection algorithm for HAM pictures,
instead of using a grayscale colormap.
REFERENCES
Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
Addison Wesley, ISBN 0–201–56775–X
SEE ALSO
ppm(5), ilbmtoppm(1)
AUTHORS
©1989 by Jef Poskanzer.
Modified August 1993 by Ingo Wilken
(Ingo.Wilken@informatik.uni-oldenburg.de).
ppmtomitsu129 Jan 1992
NAME
ppmtomitsu - convert a portable pixmap to a Mitsubishi S340-10 file
SYNOPSIS
ppmtomitsu
[-sharpness
val][-enlarge
val][-media
string][-copy
val][-dpi300][-tiny][ppmfile]
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.
REFERENCES
Mitsubishi Sublimation Full Color Printer S340-10 Specifications of
Parallel Interface LSP-F0232F
SEE ALSO
ppmquant(1), pnmscale(1), ppm(5)
BUGS
We didn't find any - yet. (Besides, they're called features anyway :-)
If you should find one, my email-adress is below.
AUTHOR
©1992, 93 by S.Petra Zeidler, MPIfR Bonn, Germany.
(spz@specklec.mpifr-bonn.mpg.de)
ppmtomap111 August 1993
NAME
ppmtomap - extract all colors from a portable pixmap
SYNOPSIS
ppmtomap
[
-sort][
-square][
ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces a portable pixmap as output, representing a color map of the
input file. All N different colors found are put in an Nx1 portable
pixmap.
This color map file can be used as a mapfile for
ppmquant
or
ppmtogif.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
WARNING
If you want to use the output file as a mapfile for
ppmtogif,
you first have to do a
ppmquant 256,
since
ppmtomap
is not limited to 256 colors (but to 65536).
SEE ALSO
ppmtogif(1), ppmquant(1), ppm(5)
AUTHOR
Marcel Wijkstra (wijkstra@fwi.uva.nl).
©1989 by Jef Poskanzer.
ppmtopcx109 April 1990
NAME
ppmtopcx - convert a portable pixmap into a PCX file
SYNOPSIS
ppmtopcx
[ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces a PCX file as output.
SEE ALSO
pcxtoppm(1), ppm(5)
AUTHOR
©1990 by Michael Davidson.
ppmtopgm123 December 1988
NAME
ppmtopgm - convert a portable pixmap into a portable graymap
SYNOPSIS
ppmtopgm
[ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces a portable graymap 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.
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.
SEE ALSO
pgmtoppm(1), ppmtorgb3(1), rgb3toppm(1), ppm(5), pgm(5)
AUTHOR
©1989 by Jef Poskanzer.
ppmtopi1119 July 1990
NAME
ppmtopi1 - convert a portable pixmap into an Atari Degas .pi1 file
SYNOPSIS
ppmtopi1
[ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces an Atari Degas .pi1 file as output.
SEE ALSO
pi1toppm(1), ppm(5), pbmtopi3(1), pi3topbm(1)
AUTHOR
©1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
ppmtopict115 April 1990
NAME
ppmtopict - convert a portable pixmap into a Macintosh PICT file
SYNOPSIS
ppmtopict
[ppmfile]
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.
BUGS
The picture size field is only correct if the output is to a file
since writing into this field requires seeking backwards 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.
SEE ALSO
picttoppm(1), ppm(5), mcvert(1)
AUTHOR
©1990 by Ken Yap (ken@cs.rocester.edu).
ppmtopj113 July 1991
NAME
ppmtopj - convert a portable pixmap to an HP PaintJet file
SYNOPSIS
ppmtopj
[-gamma
val][-xpos
val][-ypos
val][-back
dark|lite][-rle][-center][-render
none|snap|bw|dither|diffuse|monodither|monodiffuse|clusterdither|monoclusterdither][ppmfile]
DESCRIPTION
Reads a portable pixmap as input and converts it into a format 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 sending 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
REFERENCES
HP PaintJet XL Color Graphics Printer User's Guide
SEE ALSO
pnmdepth(1), ppmquant(1), ppmdither(1), ppm(5)
BUGS
Most of the options have not been tested because of the price of the paper.
AUTHOR
©1991 by Christos Zoulas.
ppmtopjxl114 March 1991
NAME
ppmtopjxl - convert a portable pixmap into an HP PaintJet XL PCL file
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]
DESCRIPTION
Reads a portable pixmap as input.
Produces a PCL file suitable 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 presentation 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 interpreted as the
number of dots to set the width or height to, but an optional dimension of
`pt' (points), `dp' (decipoints), `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.
SEE ALSO
ppm(5)
AUTHOR
Angus Duggan
ppmtopuzz122 August 1990
NAME
ppmtopuzz - convert a portable pixmap into an X11 ``puzzle'' file
SYNOPSIS
ppmtopuzz
[ppmfile]
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.
SEE ALSO
ppm(5), puzzle(1)
AUTHOR
©1991 by Jef Poskanzer.
ppmtorgb3110 January 1991
NAME
ppmtorgb3 - separate a portable pixmap into three portable graymaps
SYNOPSIS
ppmtorgb3
[ppmfile]
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.
SEE ALSO
rgb3toppm(1), ppmtopgm(1), pgmtoppm(1), ppm(5), pgm(5)
AUTHOR
©1991 by Jef Poskanzer.
ppmtosixel126 April 1991
NAME
ppmtosixel - convert a portable pixmap into DEC sixel format
SYNOPSIS
ppmtosixel
[-raw]
[-margin]
[ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces sixel commands (SIX) as output.
The output is formatted for color printing, 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 control footer ends the image file.
OPTIONS
PRINTING
Generally, sixel files must reach the printer unfiltered.
Use the lpr -x option or cat filename > /dev/tty0?.
BUGS
Upon rescaling, truncation of the least significant bits of RGB values
may result in poor color conversion.
If the original 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.
SEE ALSO
ppm(5)
AUTHOR
©1991 by Rick Vinci.
ppmtotga128 October 1991
NAME
ppmtotga - convert portable pixmap into a TrueVision Targa file
SYNOPSIS
ppmtotga
[
-mono|-cmap|-rgb]
[
-norle]
[
ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces a TrueVision Targa file as output.
OPTIONS
All flags can be abbreviated to their shortest unique prefix. If no
file type is specified the most highly constained compatible type is
used, where monochrome is more constained than colormapped which is in
turn more constained than unmapped.
BUGS
Does not support all possible Targa file types.
Should really be in PNM, not PPM.
SEE ALSO
tgatoppm(1), ppm(5)
AUTHOR
©1989, 1991 by Mark Shand and Jef Poskanzer.
ppmtouil131 August 1990
NAME
ppmtouil - convert a portable pixmap into a Motif UIL icon file
SYNOPSIS
ppmtouil
[-name
uilname]
[ppmfile]
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 compiled in, or if the RGB values don't match,
then the color
will be printed with the #RGB, #RRGGBB, #RRRGGGBBB, or #RRRRGGGGBBBB
hexadecimal format.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
ppm(5)
AUTHOR
Converted by Jef Poskanzer from ppmtoxpm.c, which is
©1990 by Mark W. Snitily.
ppmtoxpm1Tue Apr 9 1991
NAME
ppmtoxpm - convert a portable pixmap into an X11 pixmap
SYNOPSIS
ppmtoxpm [-name <xpmname>] [-rgb <rgb-textfile>] [<ppmfile>]
DESCRIPTION
Reads a portable pixmap as input.
Produces X11 pixmap (version 3) as output which
can be loaded directly by the XPM library.
The -nameoption allows one 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 -nameis not specified and <ppmfile>
is not specified (i.e., piped input), the prefix string will default to
the string ``noname''.
The -rgboption allows one to specify an X11 rgb text file for the
lookup of color name mnemonics. This rgb text file is typically the
/usr/lib/X11/rgb.txt of the MIT X11 distribution, but any file using the
same format may be used. When specified and
a RGB value from the ppm input matches a RGB value from the <rgb-textfile>,
then the corresponding color name mnemonic is printed in the XPM's colormap.
If -rgbis not specified, or if the RGB values don't match, then the color
will be printed with the #RGB, #RRGGBB, #RRRGGGBBB, or #RRRRGGGGBBBB
hexadecimal format.
All flags can be abbreviated to their shortest unique prefix.
For example, to convert the file ``dot'' (found in /usr/include/X11/bitmaps),
from xbm to xpm one could specify
or, with a rgb text file (in the local directory)
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.
SEE ALSO
ppm(5)
XPM Manual by Arnaud Le Hors (lehors@mirsa.inria.fr).
AUTHOR
©1990 by Mark W. Snitily.
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.
This tool was developed for Schlumberger Technologies, ATE Division, and
with their permission is being made available to the public with the above
copyright notice and permission notice.
Upgraded to XPM2 by
Paul Breslaw, Mecasoft SA, Zurich, Switzerland (paul@mecazh.uu.ch)
Thu Nov 8 16:01:17 1990
Upgraded to XPM version 3 by
Arnaud Le Hors (lehors@mirsa.inria.fr)
Tue Apr 9 1991
ppmtoyuv125 March 91
NAME
ppmtoyuv - convert a portable pixmap into an Abekas YUV file
SYNOPSIS
ppmtoyuv
[ppmfile]
DESCRIPTION
Reads a portable pixmap as input.
Produces an Abekas YUV file as output.
SEE ALSO
yuvtoppm(1), ppm(5)
AUTHOR
Marc Boucher (marc@PostImage.COM),
based on Example Conversion Program, A60/A64 Digital Video Interface
Manual, page 69.
©1991 by DHD PostImage Inc.
©1987 by Abekas Video Systems Inc.
ppmtoyuvsplit19 September 1993
NAME
ppmtoyuvsplit - convert a portable pixmap into 3 subsampled raw YUV files
SYNOPSIS
ppmtoyuvsplit
basename
[ppmfile]
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 subsampling is done
by arithmetic mean of 4 pixels colors into one. The YUV values are scaled
according to CCIR.601, as assumed by MPEG.
SEE ALSO
mpeg(1), ppm(5)
AUTHOR
©1993 by Andre Beck. (Andre_Beck@IRS.Inf.TU-Dresden.de).
Based on ppmtoyuv.c.
psidtopgm102 August 89
NAME
psidtopgm - convert PostScript ``image'' data into a portable graymap
SYNOPSIS
psidtopgm
width height bits/sample
[imagedata]
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...
SEE ALSO
pnmtops(1), pgm(5)
AUTHOR
©1989 by Jef Poskanzer.
qrttoppm125 August 1989
NAME
qrttoppm - convert output from the QRT ray tracer into a portable pixmap
SYNOPSIS
qrttoppm
[qrtfile]
DESCRIPTION
Reads a QRT file as input.
Produces a portable pixmap as output.
SEE ALSO
ppm(5)
AUTHOR
©1989 by Jef Poskanzer.
rasttopnm113 January 1991
NAME
rasttopnm - convert a Sun rasterfile into a portable anymap
SYNOPSIS
rasttopnm
[rastfile]
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.
SEE ALSO
pnmtorast(1), pnm(5)
AUTHOR
©1989, 1991 by Jef Poskanzer.
rawtopgm115 June 1993
NAME
rawtopgm - convert raw grayscale bytes into a portable graymap
SYNOPSIS
rawtopgm
[
-headerskip
N]
[
-rowskip
N]
[
-tb|
-topbottom]
[
width
height]
[
imagedata]
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.
OPTIONS
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.
SEE ALSO
pgm(5), rawtoppm(1), pnmflip(1)
AUTHORS
©1989 by Jef Poskanzer.
Modified June 1993 by Oliver Trepte (oliver@fysik4.kth.se).
rawtoppm106 February 1991
NAME
rawtoppm - convert raw RGB bytes into a portable pixmap
SYNOPSIS
rawtoppm
[
-headerskip
N]
[
-rowskip
N]
[
-rgb|
-rbg|
-grb
|
-gbr|
-brg|
-bgr
]
[
-interpixel|
-interrow]
width height
[
imagedata]
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 .
OPTIONS
SEE ALSO
ppm(5), rawtopgm(1), rgb3toppm(1), pnmflip(1)
AUTHOR
©1991 by Jef Poskanzer.
rgb3toppm115 February 1990
NAME
rgb3toppm - combine three portable graymaps into one portable pixmap
SYNOPSIS
rgb3toppm
redpgmfile greenpgmfile bluepgmfile
DESCRIPTION
Reads three portable graymaps as input.
Combines them and produces one portable pixmap as output.
SEE ALSO
ppmtorgb3(1), pgmtoppm(1), ppmtopgm(1), ppm(5), pgm(5)
AUTHOR
©1991 by Jef Poskanzer.
sirtopnm120 March 1991
NAME
sirtopnm - convert a Solitaire file into a portable anymap
SYNOPSIS
sirtopnm
[sirfile]
DESCRIPTION
Reads a Solitaire Image Recorder file as input.
Produces a portable anymap as output.
The type of the output file depends on the input file - if it's
an MGI TYPE 17 file, a
pgm
file is written. If it's an MGI TYPE 11 file, a
ppm
file is written. The program tells you which type it is writing.
BUGS
SEE ALSO
pnmtosir(1), pnm(5)
AUTHOR
©1991 by Marvin Landis.
sldtoppm110 October 1991
NAME
sldtoppm - convert an AutoCAD slide file into a portable pixmap
SYNOPSIS
sldtoppm
'in 14n
[
-adjust]
[
-dir]
[
-height|
-ysize
s]
[
-info]
[
-lib|
-Lib
name]
[
-scale
s]
[
-verbose]
[
-width|
-xsize
s]
[
slidefile]
-7.0em
DESCRIPTION
Reads an AutoCADlide 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 pixmap; see the file ppmdraw.h for
details on this package.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
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 appropriate 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.
SEE ALSO
AutoCAD Reference Manual:
Slide File Format,
pnmscale(1),
ppm(5)
AUTHOR
1
John Walker
Autodesk SA
Avenue des Champs-Montants 14b
CH-2074 MARIN
Suisse/Schweiz/Svizzera/Svizra/Switzerland
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 restrictions. This software is provided ``as
is'' without express or implied warranty.
AutoCAD and Autodesk are registered trademarks of Autodesk, Inc.
spctoppm119 July 1990
NAME
spctoppm - convert an Atari compressed Spectrum file into a portable pixmap
SYNOPSIS
spctoppm
[spcfile]
DESCRIPTION
Reads an Atari compressed Spectrum file as input.
Produces a portable pixmap as output.
SEE ALSO
sputoppm(1), ppm(5)
AUTHOR
©1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
spottopgm1L
NAME
spottopgm – convert SPOT satellite images to Portable Greymap format
SYNTAX
spottopgm [–1|2|3] [Firstcol Firstline Lastcol Lastline] inputfile
OPTIONS
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.
INSTALLATION
You
must
edit the source program and either define BIGENDIAN or LITTLEENDIAN,
and fix the typedefs for uint32t, uint16t and uint8t appropriately.
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.
AUTHOR
Warren Toomey wkt@csadfa.cs.adfa.oz.au
SEE ALSO
The rest of the Pbmplus suite.
sputoppm119 July 1990
NAME
sputoppm - convert an Atari uncompressed Spectrum file into a portable pixmap
SYNOPSIS
sputoppm
[spufile]
DESCRIPTION
Reads an Atari uncompressed Spectrum file as input.
Produces a portable pixmap as output.
SEE ALSO
spctoppm(1), ppm(5)
AUTHOR
©1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
tgatoppm126 August 1989
NAME
tgatoppm - convert TrueVision Targa file into a portable pixmap
SYNOPSIS
tgatoppm
[
-debug]
[
tgafile]
DESCRIPTION
Reads a TrueVision Targa file as input.
Produces a portable pixmap as output.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
Should really be in PNM, not PPM.
SEE ALSO
ppmtotga(1), ppm(5)
AUTHOR
Partially based on tga2rast, version 1.0, by Ian J. MacPhedran.
©1989 by Jef Poskanzer.
tifftopnm113 January 1991
NAME
tifftopnm - convert a TIFF file into a portable anymap
SYNOPSIS
tifftopnm
[
-headerdump]
tifffile
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.
OPTIONS
All flags can be abbreviated to their shortest unique prefix.
SEE ALSO
pnmtotiff(1), pnm(5)
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.
AUTHOR
Derived by Jef Poskanzer from tif2ras.c, which is
©1990 by Sun Microsystems, Inc.
Author: Patrick J. Naughton (naughton@wind.sun.com).
xbmtopbm131 August 1988
NAME
xbmtopbm - convert an X11 or X10 bitmap into a portable bitmap
SYNOPSIS
xbmtopbm
[bitmapfile]
DESCRIPTION
Reads an X11 or X10 bitmap as input.
Produces a portable bitmap as output.
SEE ALSO
pbmtoxbm(1), pbmtox10bm(1), pbm(5)
AUTHOR
©1988 by Jef Poskanzer.
ximtoppm125 March 1990
NAME
ximtoppm - convert an Xim file into a portable pixmap
SYNOPSIS
ximtoppm
[ximfile]
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.
SEE ALSO
ppm(5)
AUTHOR
©1991 by Jef Poskanzer.
xpmtoppm116 August 1990
NAME
xpmtoppm - convert an X11 pixmap into a portable pixmap
SYNOPSIS
xpmtoppm
[xpmfile]
DESCRIPTION
Reads an X11 pixmap (XPM version 1 or 3) as input.
Produces a portable pixmap as output.
KNOWN BUGS
The support to XPM version 3 is limited. Comments can only be single lines
and there must be for every pixel a default colorname for a color type visual.
SEE ALSO
ppmtoxpm(1), ppm(5)
XPM Manual by Arnaud Le Hors (lehors@mirsa.inria.fr).
AUTHOR
©1991 by Jef Poskanzer.
Upgraded to support XPM version 3 by Arnaud Le Hors
(lehors@mirsa.inria.fr) Tue Apr 9 1991.
xvminitoppm114 December 1993
NAME
xvminitoppm - convert a XV ``thumbnail'' picture to PPM
SYNOPSIS
xvminitoppm
[xvminipic]
DESCRIPTION
Reads a XV ``thumbnail'' picture (a miniature picture generated by
the ``VisualSchnauzer'' browser) as input.
Produces a portable pixmap as output.
SEE ALSO
ppm(5), xv(1)
AUTHOR
Copyright (C) 1993 by Ingo Wilken
xwdtopnm111 January 1991
NAME
xwdtopnm - convert a X11 or X10 window dump file into a portable anymap
SYNOPSIS
xwdtopnm
[xwdfile]
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.
BUGS
I haven't tested this tool with very many configurations, so there are
probably bugs.
Please let me know if you find any.
SEE ALSO
pnmtoxwd(1), pnm(5), xwd(1)
AUTHOR
©1989, 1991 by Jef Poskanzer.
ybmtopbm106 March 1990
NAME
ybmtopbm - convert a Bennet Yee ``face'' file into a portable bitmap
SYNOPSIS
ybmtopbm
[facefile]
DESCRIPTION
Reads a file acceptable to the
face
and
xbm
programs by Bennet Yee (bsy+@cs.cmu.edu).
Writes a portable bitmap as output.
SEE ALSO
pbmtoybm(1), pbm(5), face(1), face(5), xbm(1)
AUTHOR
©1991 by Jamie Zawinski and Jef Poskanzer.
yuvsplittoppm126 August 93
NAME
yuvplittoppm - convert a Y- an U- and a V-file into a portable pixmap.
SYNOPSIS
yuvsplittoppm
basename width height
[-ccir601]
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.
OPTIONS
SEE ALSO
ppmtoyuvsplit(1), yuvtoppm(1), ppm(5)
AUTHOR
Marcel Wijkstra (wijkstra@fwi.uva.nl), based on ppmtoyuvsplit.
yuvtoppm125 March 91
NAME
yuvtoppm - convert Abekas YUV bytes into a portable pixmap
SYNOPSIS
yuvtoppm
width height
[imagedata]
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.
SEE ALSO
ppmtoyuv(1), ppm(5)
AUTHOR
Marc Boucher (marc@PostImage.COM),
based on Example Conversion Program, A60/A64 Digital Video Interface
Manual, page 69.
©1991 by DHD PostImage Inc.
©1987 by Abekas Video Systems Inc.
zeisstopnm115 June 1993
NAME
zeisstopnm - convert a Zeiss confocal file into a portable anymap
SYNOPSIS
zeisstopnm
[
-pgm
|
-ppm]
[
zeissfile]
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.
OPTIONS
SEE ALSO
pnm(5)
AUTHOR
©1993 by Oliver Trepte (oliver@fysik4.kth.se).