Image format

PPM

Portable Pixmap: simple uncompressed raster samples for image-processing pipelines.

Explore the format

Convert PPM to

Choose a target format for your PPM images.

All 21 conversions

Marked paths may need steps such as flattening, rasterization, tone mapping or animation loss.

Convert to PPM

Choose a source format to convert to PPM.

All 36 conversions

Marked paths may need steps such as flattening, rasterization, tone mapping or animation loss.

About PPM

Portable Pixmap

PPM is Netpbm’s simple RGB raster interchange format. Each pixel has red, green and blue samples with a declared maximum value. A short header defines dimensions and precision, making the layout convenient for programs that need direct access to colour samples rather than a complex image container.

P3 stores textual numbers; P6 stores binary samples. Binary samples use one byte when maxval is below 256 and two bytes, most significant first, otherwise, up to 65535. PPM has no alpha or compression. The specification describes nonlinear RGB samples; alternate linear or sRGB conventions require explicit workflow agreement.

Use PPM for colour-image processing, debugging and simple pipeline interchange. It makes pixels easy to inspect but files can be large and lack rich metadata. Confirm maxval and colour interpretation before importing scientific or rendered values; treating linear data as display-encoded colour changes the result.

Key capabilities

Compression
Uncompressed
Transparency
No
Animation
No
Extensions
.ppm
MIME type
image/x-portable-pixmap · Unregistered Netpbm convention
Metadata
Header, Comments
Best for
RGB processing & debugging
Colour depth
maxval up to 65535

Netpbm stores these samples without compression. Reducing colour, thresholding or changing maxval can still lose information before storage; text and binary representations change the layout, not its image meaning.

History of PPM

This format belongs to the documented Pbmplus/Netpbm evolution. The history distinguishes the original bitmap idea, later channel models and library development.

  1. 1980s

    A simple interchange language

    Jef Poskanzer invents PBM to exchange bitmaps using a representation simple enough for text-only email. Its aim is robust interchange between otherwise incompatible graphics tools.

  2. 1988

    Pbmplus and colour formats

    Poskanzer distributes Pbmplus in 1988 and adds PGM and PPM by the end of that year. The toolkit extends the original bitmap exchange to grayscale and RGB images.

  3. 1993

    Netpbm replaces Pbmplus

    Netpbm begins as a new release of the unmaintained Pbmplus package, with fixes and improvements contributed over the network. The format family remains a bridge among graphics tools.

  4. 2000-04

    Two-byte samples

    The maintained Netpbm distribution documents two-byte samples up to a maxval of 65535 and a defined byte order for PGM and PPM. This resolves ambiguity between earlier extensions.

PPM compared

Different formats, different trade-offs. Choose for the image and the workflow.

PGM

PPM vs PGM

PGM stores one grayscale sample per pixel. It is suitable for grayscale processing and masks; exporting a colour image requires a deliberate luminance conversion and removes colour information.

PBM

PPM vs PBM

PBM stores only black and white, one bit per pixel in its binary form. It fits bitonal masks and line art; tonal images need thresholding or dithering, so gradients cannot remain as continuous gray levels.

PAM

PPM vs PAM

PAM extends Netpbm with explicit tuple types and depths, including RGB_ALPHA and GRAYSCALE_ALPHA. It suits channel-aware processing, but receiving tools must agree on the tuple meaning and it remains uncompressed.

PNG

PPM vs PNG

PNG preserves decoded pixels losslessly and can carry alpha. It is useful for transparent graphics and screenshots; it does not preserve editable document layers or camera sensor data, and photographic files can be large.

PPM FAQ

What does this format store?

PPM is Netpbm’s simple RGB raster interchange format. Each pixel has red, green and blue samples with a declared maximum value. A short header defines dimensions and precision, making the layout convenient for programs that need direct access to colour samples rather than a complex image container.

How does compression affect quality?

Netpbm stores these samples without compression. Reducing colour, thresholding or changing maxval can still lose information before storage; text and binary representations change the layout, not its image meaning.

Are P3 and P6 different image types?

They are text and binary representations of PPM RGB samples. Switching representation does not add alpha or compress the image; a decoder must interpret maxval and the corresponding sample width.

What should I check before opening the file?

Check the magic number, sample precision and tuple or channel meaning. Many simple readers accept only one binary image and 8-bit samples even though the specifications permit more.

What changes when I export to another format?

Preserve maxval and colour interpretation when creating the rendered output. Grayscale and bitonal targets remove information deliberately; alpha requires an alpha-bearing tuple or a separate mask. Optional comments may not transfer.

When is this format useful?

Use PPM for colour-image processing, debugging and simple pipeline interchange. It makes pixels easy to inspect but files can be large and lack rich metadata. Confirm maxval and colour interpretation before importing scientific or rendered values; treating linear data as display-encoded colour changes the result.

Sources