Image MIME Reference
SVG
Scalable Vector Graphics
image/svg+xml
VS
X Pixmap
image/x-xpixmap
XPM
A complete technical comparison of Scalable Vector Graphics and X Pixmap — covering compression, feature support, browser compatibility, magic bytes, and when to choose each format.
SVG wins on browser support
Feature Support
| Feature | SVG | XPM |
|---|---|---|
| Transparency (Alpha) | Yes | Yes |
| Animation Support | Yes | ✕ No |
| Progressive Loading | ✕ No | ✕ No |
| HDR Support | Yes | ✕ No |
| EXIF Metadata | ✕ No | ✕ No |
| ICC Color Profile | ✕ No | ✕ No |
Scalable Vector Graphics
image/svg+xml
Extension
.svg.svgz
Container
XML Document
Compression
Uncompressed (Plain Text XML) / Lossless (GZIP via .svgz)
Algorithm
None (for .svg)GZIP (for .svgz)
Color Depth
Vector (Independent of bit-depth), CSS Colors (HEX, RGB, HSL, Display-P3)
Developed by
World Wide Web Consortium (W3C)
Released
2001
Magic Bytes
3C 73 76 67 (for <svg) / 3C 3F 78 6D 6C (for <?xml)
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 */')
Browser Support Comparison
| Browser | SVG | XPM |
|---|---|---|
|
|
✓ All
|
✕ |
|
|
✓ All
|
✕ |
|
|
✓ All
|
✕ |
|
|
✓ All
|
✕ |
|
|
✓
|
✓
|
SVG
SVG Strengths
- Provides infinite resolution scalability, looking perfectly crisp on high-DPI (Retina) displays without increasing file size
- Extremely lightweight compared to raster formats for flat graphics, logos, and UI elements
- Can be manipulated dynamically via the browser's CSS and JavaScript engines (DOM integration)
Limitations
- Unsuitable for complex photographic images or photorealistic textures
- Poses critical security vulnerabilities (XSS and XML External Entity attacks) if user-uploaded SVGs are not heavily sanitized
- Rendering performance degrades significantly if the SVG contains tens of thousands of complex nodes or deeply nested paths
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
SVG
Use SVG when…
- Web Logos & UI Icons
- Responsive Web Design Elements
- Interactive Data Visualizations (D3.js)
- CSS and SMIL Web Animations
XPM
Use XPM when…
- X Window System (X11) Application Icons and Cursors
- Embedded C/C++ Firmware Color UI Assets
- Early Linux Desktop Environment Themes