Free webp to jpg
Image MIME Reference
PGM

Portable Graymap

image/x-portable-graymap
VS

X Pixmap

image/x-xpixmap
XPM

A complete technical comparison of Portable Graymap and X Pixmap — covering compression, feature support, browser compatibility, magic bytes, and when to choose each format.

Equal browser support

Feature Support

Feature PGM XPM
Transparency (Alpha) ✕ No Yes
Animation Support ✕ No ✕ No
Progressive Loading ✕ No ✕ No
HDR Support Yes ✕ No
EXIF Metadata ✕ No ✕ No
ICC Color Profile ✕ No ✕ No
Portable Graymap
image/x-portable-graymap
Extension
.pgm
Container Netpbm
Compression Uncompressed
Algorithm
None
Color Depth 8-bit (Grayscale), 16-bit (Grayscale)
Developed by Jef Poskanzer (Netpbm Project)
Released 1988
Magic Bytes
50 32 (ASCII) or 50 35 (Binary)
Full PGM reference →
X Pixmap
image/x-xpixmap
Extension
.xpm
Container C Source Code Header (.c / .h)
Compression Uncompressed (Source Code)
Algorithm
None
Color Depth Indexed Color (Custom Palette with RGB and Alpha 'None')
Developed by Daniel Dardailler and Colas Nahaboo (Bull / X Consortium)
Released 1989
Magic Bytes
2F 2A 20 58 50 4D 20 2A 2F (ASCII '/* XPM */')
Full XPM reference →

Browser Support Comparison

Browser PGM XPM
Chrome Chrome
Firefox Firefox
Safari Safari
Edge Edge
IE IE (Legacy)
PGM

PGM Strengths

  • Extremely simple format allows custom parsers to be written from scratch in minimal time
  • Supports 16-bit precision, making it highly valuable for scientific, medical, and height-map data where 8-bit precision is insufficient
  • ASCII encoding ('P2') allows manual editing and visual inspection of pixel values directly within a text editor
Limitations
  • Strictly limited to grayscale; cannot display color
  • Lack of compression results in massive file sizes, making it entirely impractical for web delivery or consumer storage
  • Does not support alpha transparency or modern metadata structures
XPM

XPM Strengths

  • Can be compiled directly into C or C++ source code without requiring an external asset loading mechanism
  • Human-readable palette mapping allows developers to inspect, modify, or hand-craft icons directly within a text editor
  • Native support for color palettes and transparency via the 'None' keyword
Limitations
  • Extremely inefficient storage structure for large images, resulting in massive file bloat compared to binary formats like PNG
  • Completely obsolete and unsupported in modern web browsers
  • Parsing overhead requires compiling or interpreting text-based color tables at runtime

When to choose which format

PGM
Use PGM when…
  • Computer Vision and Machine Learning Pre-processing
  • Scientific and Medical Image Processing
  • Unix/Linux Command-Line Image Pipelines
XPM
Use XPM when…
  • X Window System (X11) Application Icons and Cursors
  • Embedded C/C++ Firmware Color UI Assets
  • Early Linux Desktop Environment Themes
Share this comparison