ppmtobmp1
Convert a ppm image into a bmp file
Usage
ppmtobmp
[-windows]
[-os2]
[-bpp=bits_per_pixel]
[-mapfile=filename]
[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.
Overview
This program is part of Netpbm(1) .
ppmtobmp reads a PPM image as input and produces a Microsoft Windows or OS/2 BMP file as output.
Options
In addition to the options common to all programs based on libnetpbm (most notably -quiet, see
Common Options ⟨index.html#commonoptions⟩ ), ppmtobmp recognizes the following command line options:
-
-windows -
Tells the program to produce a Microsoft Windows BMP file. (This is the default.)
-
-os2 -
Tells the program to produce an OS/2 BMP file. (Before August 2000, this was the default).
-
-bpp -
This tells how many bits per pixel you want the BMP file to contain. Only 1, 4, 8, and 24 are possible. By default,
ppmtobmpchooses the smallest number with which it can represent all the colors in the input image. If you specify a number too small to represent all the colors in the input image,ppmtobmptells you and terminates. You can usepnmquantorppmditherto reduce the number of colors in the image.Before Netpbm 10.85 (December 2018),
ppmtobmpignores this option if the input is PBM and produces a BMP with 1 bit per pixel. With these versions, if you want more than that, usepbmtopgmto convert the PBM to PGM first.
-
-mapfile=filename -
This identifies a file to use as the BMP palette (aka "colormap"). In one BMP subformat, the BMP stream contains a palette of up to 256 colors, and represents the image raster as indices into that palette. Normally,
ppmtobmptakes care of computing a suitable palette, but if you are going to dissect the BMP output in some way, you may want certain values for the palette indices. E.g. you might want red to be 13, whereppmtobmpwould (arbitrarily) choose 39. In that case, you can construct the palette yourself and use this option to tellppmtobmpto use your palette.This option does not control what colors are in the output. The colors in the output are exactly those in the input, and the palette you supply must contain at least all the colors that are in the input. You can use
pnmremapto adjust your input image so that it contains only colors from your palette.The palette file is a Netpbm format file with one pixel per palette entry. Each pixel must have a distinct color (no repeats). The order of the BMP palette
ppmtobmpgenerates is the order of the pixels in the palette file, going from top to bottom, left to right.A BMP palette may have at most 256 colors, so the palette file must have at most 256 pixels.
You may find
pnmcolormapuseful in generating the palette file.pamseqtoo.In the case of grayscale image, if you are processing the BMP image, it
may be convenient for you to have the actual gray values in the raster
part of the image rather than arbitrary indices into a palette. There is
no BMP format specifically for that, but you can achieve it by using a
palette in which each index is equal to the indexed gray value, and then
ignoring the palette when you process the BMP image.Here is an example of doing that:
$ pamseq 1 255 > mapfile.pgm$ ppmtobmp -mapfile=mapfile.pgm input.pgm > output.bmpThis option was new in Netpbm 10.45 (December 2008).
Notes
To get a faithful reproduction of the input image, the maxval of the input image must be 255. If it is something else, the colors in the BMP file may be slightly different from the colors in the input.
Windows icons are not BMP files. Use ppmtowinicon to create those.
Document source
This manual page was generated by the Netpbm tool 'makeman' from HTML source. The master documentation is at
-
http://netpbm.sourceforge.net/doc/ppmtobmp.html
Releases
16 releases since Debian 2.0 (Hamm); the text changed 3 times.
-bpp since Debian 3.0 (Woody);
-mapfile since Debian 12 (Bookworm).