Was ist das XPM-Dateiformat?
Eine .xpm-Datei speichert ein Rasterbild im X-PixMap-Format - ein Klartextformat mit indizierten Farben, das nativ für das X Window System ist. Im Gegensatz zu den meisten Bildformaten ist eine XPM-Datei auch gültiger C-Quellcode: Sie deklariert ein statisches String-Array, das C- und C++-Programme direkt per #include einbinden können, ohne einen separaten Bildladeschritt zu benötigen.
XPM3, die aktuelle und einzig weit verbreitete Version, beginnt mit dem ASCII-Kommentar /* XPM */ bei Byte-Offset Null, gefolgt von einer C-Array-Definition. Der erste String im Array kodiert die Bildabmessungen, die Farbanzahl und wie viele ASCII-Zeichen pro Pixel verwendet werden (1-4). Nachfolgende Strings definieren eine Farbtabelle, die diese Zeichencodes X11-Farbnamen (wie „cornflowerblue“) oder Hex-RGB-Werten (#RRGGBB) zuordnet. Transparenz wird ausgedrückt, indem ein Pixelcode dem speziellen Namen None zugeordnet wird - ein Mechanismus, der der PNG-Alpha-Transparenz um einige Jahre vorausging.
Da das Format reines ASCII ist, können .xpm-Dateien versionsverwaltet, verglichen (diff) und programmatisch ohne Binärwerkzeuge erzeugt werden. Die Dateigröße wächst linear mit der Pixelanzahl, was das Format für Fotografien unpraktisch macht, aber ideal für kleine Icons und UI-Bitmaps.
XPM bleibt das native Icon-Format für viele X11-Toolkits wie Motif und das klassische GTK. Moderne Linux-Desktops bevorzugen SVG oder PNG für Icons, aber X11-Anwendungen liefern oft noch XPM-Fallbacks mit. GIMP, ImageMagick, XnView und IrfanView unterstützen das Format auf modernen Systemen.
Sicherheit
RISIKO: LOWXPM ist ein Klartext-ASCII-Format; es kann keinen ausführbaren Code oder Makros enthalten. Missgestaltete XPM-Dateien könnten theoretisch Fehler in Parsing-Bibliotheken auslösen (historische CVEs existieren in libXpm auf X11-Systemen), aber moderne gepatchte Versionen sind nicht anfällig. Das Risiko für normale Benutzer ist vernachlässigbar.
Formatdetails
kurz gefasstProgramme zum Öffnen von XPM-Dateien
Technische Details
technische Spezifikation| Dateikodierung | Reiner ASCII-Text (7-Bit-sicher; auch gültiger C-Quellcode) |
| Dateisignatur | /* XPM */ bei Byte-Offset 0 (XPM3); XPM2-Dateien beginnen mit ! XPM2 |
| Farbmodell | Indizierte Palette; 1-4 druckbare ASCII-Zeichen pro Pixel werden Farbeinträgen zugeordnet |
| Farbspezifikation | X11-Farbnamen (z. B. cornflowerblue) oder #RRGGBB-Hexwerte pro Paletteneintrag |
| Transparenz | Der X11-Farbname „None“ ordnet einen Pixelcode voller Transparenz zu (kein separates Alpha-Kanal-Byte) |
| Kompression | Keine - jedes Pixel wird als 1-4 literale ASCII-Zeichen gespeichert |
| Formatversionen | XPM1 (1989, monochrome C-Makros), XPM2 (1990, eigenständige Daten), XPM3 (1991, C-Syntax - aktuell) |
| Maximale Palette | Bis zu 65.536 gleichzeitige indizierte Farben |
| MIME-Typ | image/x-xpixmap |
| Abmessungen | Keine harte Grenze; Dateigröße wächst linear mit der Pixelanzahl (jedes Pixel = chars_per_pixel ASCII-Bytes) |
| C-Integration | Dateiinhalt kann direkt in C/C++-Quellcode per #include eingebunden und ohne Loader kompiliert werden |
| Veröffentlicht | 1989 (XPM1, Daniel Dardailler, Bull Research Center) |
| Neueste Version | XPM3 (1991), documented in XPM Manual v3.4i (September 1996, Arnaud Le Hors) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | www.xfree86.org |
XPM-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu XPM-Dateien.