Ppmtoxpm User Manual(0) Ppmtoxpm User Manual(0)
ppmtoxpm - convert a PPM image to an X11 pixmap
ppmtoxpm [-name=xpmname] [-hexonly] [-rgb=rgb-textfile] [-alphamask=pgmfile] [ppmfile]
Minimum unique abbreviation of option is acceptable. You may use double hyphens instead
of single hyphen to denote options. You may use white space in place of the equals sign
to separate an option name from its value.
This program is part of Netpbm(1)
ppmtoxpm reads a PPM image as input and produces X11 pixmap (version 3) as output. This
format can be loaded by the XPM library.
In the XPM output, colors may be identified by name, such as "Red", or in hexadecimal, for
example "#FF0000". In the hexadecimal format, there may be from 1 through 4 hexadecimal
digits per RGB component.
By default, ppmtoxpbm tries to find a name for each color in the image in the system color
dictionary <libppm.html#rgb.txt> , and if it finds one, uses it. If it doesn't it uses
hexadecimal. You can force ppmtoxpbm to use hexadecimal only with the -hexonly option.
You can specify a different color dictionary with the -rgb option.
When ppmtoxpm uses the hexadecimal format for identifying a color, it uses the one that
uses the least number of hexadecimal digits that it takes to represent the maxval of the
input PPM. E.g. if the maxval of the input PPM is 100, ppmtoxpm uses 2 digits per compo-
nent, as in "#FF0000".
Some programs do not properly handle one-digit-per-component hexadecimal color specifiers.
They see the wrong colors. To produce an XPM that such a program can handle, make sure
the maxval of the input PPM is greater than 15, such as by running it through pamdepth
Color Code Lengths - Image Size
In the XPM format, there is a palette ('color map') that assigns each color in the image
to a unique sequence of printable characters called a color code, and a raster that iden-
tifies the color of each pixel of the image with one of those color codes. The length of
the color code affects the size of the image stream.
All color codes in an image are the same length, and ppmtoxpm tries to make it as short as
possible. That length is, of course, determined by the number of colors in the image.
ppmtoxpm counts the colors in the image, excluding those that will be transparent in the
output due to your alpha mask, and chooses a color code length accordingly. There are 92
printable characters that can be used in a color code. Therefore, if you have 92 or fewer
colors, your color codes will be one character. If you have more than 92 but not more
than 92 * 92, your color codes will be two characters. And so on.
There's one exception to the above: If you specify an alpha mask (the -alpha option, one
unique color code represents 'transparent.' This is true even if the alpha mask doesn't
actually produce any transparent pixels. So subtract one from the number of possible col-
ors if you use -alpha.
This option specifies the prefix string which is specified in the resulting XPM
output. If you don't use the -name otpion, ppmtoxpm defaults to the filename
(without extension) of the ppmfile parameter. If you do not specify -name or ppm-
file (i.e. your input is from Standard Input), the prefix string defaults to the
This option says never to put color names in the XPM file, but rather to identify
names by hexadecimal strings that explicitly identify RGB component intensities.
This means the reader of the file need not have access to a suitable color dictio-
nary to interpret it.
This option was introduced in Netpbm 10.15 (April 2003). Before that, it was the
default, overridden by specifying -rgb.
This option names the file in which the color dictionary you want to use resides.
By default, ppmtoxpm uses the system color dictionary <libppm.html#rgb.txt> .
This option in meaningless when you specify -hexonly.
Before Netpbm 10.15 (April 2003), ppmtoxpm did not default to the system color dic-
tionary. If you didn't specify -rgb, ppmtoxpbm would use only hexadecimal color
This option names a PGM file to use as an alpha (transparency) mask. The file
must contain an image the same dimensions as the input image. ppmtoxpm marks as
transparent any pixel whose position in the alpha mask image is at most half white.
If you don't specify -alphamask, ppmtoxpm makes all pixels in the output opaque.
ppmcolormask is one way to generate an alpha mask file. You might also generate it
by extracting transparency information from an XPM file with the -alphaout option
There are similar options on other Netpbm converters that convert from formats that
include transparency information too.
ppmcolormask(1) , xpmtoppm(1) , pamdepth(1) , ppm(1)
XPM Manual by Arnaud Le Hors email@example.com
Copyright (C) 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
This tool was developed for Schlumberger Technologies, ATE Division, and with their per-
mission is being made available to the public with the above copyright notice and permis-
Upgraded to XPM2 by Paul Breslaw, Mecasoft SA, Zurich, Switzerland (firstname.lastname@example.org),
November 8, 1990.
Upgraded to XPM version 3 by Arnaud Le Hors(email@example.com), April 9, 1991.
netpbm documentation Feb 22 2003 Ppmtoxpm User Manual(0)