X PixMap

X PixMap

Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt

X PixMap
Dateiendung: .xpm
MIME-Type: image/x-xpixmap, image/x-xpm
Entwickelt von: Daniel Dardailler und Colas Nahaboo
Erstveröffentlichung: 1989
Art: Rastergrafik

X PixMap (XPM) ist ein ASCII-Text-Format für die Darstellung von Rastergrafiken, hauptsächlich Icons.

Die erste Version von XPM stammt aus dem Jahre 1989 und wurde von Daniel Dardailler und Colas Nahaboo (auch Autor des Window-Managers GWM für das X Window System) entwickelt, die beide am französischen INRIA arbeiteten. Später wurde das Format von Arnaud Le Hors erweitert. Die Intention hinter dem Format ist es, farbige Icons am Computer darzustellen. Die Struktur des Datenformats ist einfach und an das ältere monochrome XBM-Format angelehnt. Die Grafiken bestehen aus reinen Textdateien; sie können mit einem einfachen Texteditor bearbeitet werden und können, ebenso wie XBM-Dateien, direkt in C-Quellcode eingebunden werden.

Inhaltsverzeichnis

Beispiel

Das folgende Beispiel demonstriert die Syntax des XPM-Formates anhand eines roten Achteckes auf einem transparenten Hintergrund, das von einem blauen Querbalken überdeckt wird.

XPM-Quelltext Resultierendes Bild
/* XPM */
static char *XPM_example[] = {
"24 20 3 1 12 10 XPMEXT",
"  c None", 
". c #0000FF",
"+ c #FF0000",
"                        ",
"    ..                  ",
"   ....                 ",
"  ......++++++++        ",
" .........+++++++       ",
" ..........+++++++      ",
" ............++++++     ",
" .............++++++    ",
"  ..............++++    ",
"   +.............+++    ",
"   ++.............++    ",
"   +++.............+    ",
"   +++++.............   ",
"   ++++++.............. ",
"   ++++++++............ ",
"   +++++++++........... ",
"    +++++++++.........  ",
"     ++++++++++.......  ",
"      ++++++++++.....   ",
"       +++++++++ ...    ",
"XPMEXT author Anonymous",
"XPMEXT address",
"Beispielweg 42a",
"0815 Beispielstadt",
"LUMMERLAND",
"mailto:anonymous@beispielstadt.lum",
"XPMENDEXT"
};
XPM example.png

Formatbeschreibung

Das Datenformat ist in [1] beschrieben. Danach besteht eine XPM-Datei aus sieben Teilen:

  1. Kopfzeile (engl. „Header line")
  2. Deklarationszeile (engl. „Declaration and Beginning of Assignment line")
  3. Werte (engl. „Values")
  4. Farben (engl. „Colors")
  5. Pixel (engl. „Pixels")
  6. Erweiterungen (engl. „Extensions")
  7. Ende (engl. „End of Assignment")

Das Format ist so definiert worden, dass eine XPM-Datei stets gültiger C-Quellcode ist. Damit können XPM-Dateien über #include-Direktiven direkt in C-Programme eingebunden werden.

Da die meisten Programme, die XPM-Dateien verarbeiten, keine vollwertigen Parser für C-Quellcode besitzen, sollte man sich beim Erzeugen von XPM-Dateien strikt an das in der Formatspezifikation beschriebene Format halten.

Die auf die Deklarationszeile folgenden Zeilen bestehen jeweils aus C-Zeichenkettenkonstanten. Dies bedeutet, ihr Inhalt wird in doppelte ASCII-Anführungszeichen eingeschlossen und durch Komma voneinander getrennt.

Dateikopf

Die Kopfzeile besteht aus einem C-Kommentar /* XPM */. Dieser dient als Magic Number, um XPM-Dateien erkennen zu können.

Deklarationszeile

Die nächste Zeile ist die sogenannte Deklarationszeile, welche eine Variablendeklaration in C darstellt. Der Variablenname kann dabei beliebig sein, er muss ein gültiger C-Bezeichner sein. Normalerweise wird hierfür der Name der Bilddatei verwendet:

static char* bildname[] = {

Werte-Zeile

Die Werte-Zeile enthält vier bzw. sechs Dezimalzahlen mit folgenden Bedeutungen:

  1. Breite des Bildes (in Pixel)
  2. Höhe des Bildes (in Pixel)
  3. Anzahl der Farben im Bild
  4. Anzahl der Zeichen pro Pixelwert
  5. (X-Position des „Hotspots")
  6. (Y-Position des „Hotspots")

Die letzten beiden Werte geben die Position eines so genannten „Hotspots" an. Dies ist etwa bei Mauscursorn der Punkt, auf den der Mauspfeil „zeigt". Bei normalen Bildern wird dieser Wert nicht benötigt und kann entfallen.

Besitzt die XPM-Datei Erweiterungen (engl. extensions), so folgt auf die letzte Zahl der Werte-Zeile das Wort XPMEXT.

Farbdefinitionen

Anschließend folgen mehrere Zeilen, die jeweils eine Farbe im Bild definieren. Die Anzahl dieser Farbdefinitionen geht aus dem dritten Wert der Wertezeile hervor.

Jede Farbdefinition besteht aus einem Zeichencode. Die Länge des Zeichencodes geht aus dem vierten Wert der Wertezeile hervor. Nach einem Leerzeichen folgen eine oder mehrere Farbdefinitionen, die dem Zeichencode eine Farbe zuordnen. Resultierend aus dem ursprünglichen Verwendungszweck von XPM als Dateiformat für Icons, können für verschiedene Darstellungsarten unterschiedliche Farbdefinitionen angegeben werden. Dies hat den Vorteil, dass die Darstellung für verschiedene Farbtiefen optimiert werden kann und nicht aus einer farbigen Darstellung eine Schwarzweißdarstellung errechnet zu werden braucht.

Folgende Darstellungsarten werden unterstützt:

c : Farbig
g4 : Vier Graustufen
g : Mehr als vier Graustufen
m : Monochrom (Schwarzweiß)
s : Symbolisch (damit kann eine Farbe einen symbolischen Wert bekommen, etwa „Hintergrund" oder „Vordergrund". Die Auswertung dieser Symbolinformationen ist abhängig vom verwendeten Programm)

Auf diese Angabe folgt dann die eigentliche Farbdefinition. Diese kann aus einem symbolischen Namen bestehen (z. B. „white", „red"), eine Farbe im RGB-Farbraum als hexadezimale Farbdefinition (#RRGGBB) oder im HSV-Farbraum (%HHSSVV). Soll eine Farbe als „transparent" gekennzeichnet sein, so ist die Farbe auf „None" zu setzen.

Beispiel:

"A c red    m black g gray50 s foreground",
"B c yellow m white g gray80 s background",
"# c black  m black g gray10 s border",

Bilddaten

Nach den Farbdefinitionen folgen die Bilddaten. Diese sind zeilenweise von oben nach unten, in einer Zeile von links nach rechts abgespeichert. Jede Bildzeile wird in einer Textzeile in der XPM-Datei abgespeichert. Pro Bildpunkt wird – abhängig vom oben angegeben Wert – ein oder mehrere Zeichen benutzt. Diese Notation hat zur Folge, dass sich einfache Bilder bereits im Quellcode erkennen lassen, siehe ASCII-Art.

Erweiterungen

Sofern in der Werte-Zeile das Vorhandensein von Erweiterungen angezeigt worden ist, folgen auf die Bilddaten Erweiterungs-Zeilen, die stets folgendes Format haben:

  • Einzeilige Erweiterungsdaten:
"XPMEXT extension_name extension_value"
  • Mehrzeilige Erweiterungsdaten:
"XPMEXT extension_name",
"data",

Es ist nicht spezifiziert, wie das Ende vonr mehrzeiligen Erweiterungsdaten gekennzeichnet werden soll.

Die XPM-Spezifikation empfiehlt zur Vermeidung von Namenskollisionen, die Namen der Erweiterung mit dem Firmennamen beginnen zu lassen. Sie lässt allerdings offen, wie dieser im Detail aussehen soll.

Das Ende des gesamten Erweiterungs-Blocks wird durch eine Zeile angezeigt, die nur den Inhalt XPMENDEXT hat.

Dateiende

Um die C-Deklaration abzuschließen, folgt am Dateiende eine Zeile mit der Zeichenfolge };.

Praktische Einschränkungen

Da die meisten Programme, die XPM-Dateien verarbeiten können, keine vollständigen C-Parser sind, sollten Programme, die XPM-Dateien erzeugen, nicht von dieser Spezifikation abweichen, insbesondere keine andere Formatierung des „Quellcodes" vornehmen und keine C-Kommentare (außer der obligatorischen Kopfzeile) oder Ähnliches hinzufügen.

Auch verstehen viele Programme die komplexen Farbdefinitionen nicht, sondern beherrschen nur eine Darstellungsart oder ignorieren diese Angabe völlig und werten nur den Farbcode aus, und verstehen außerdem nur hexadezimale RGB-Farbcodes und „None" für die transparente Farbe.

Die Zeichencodes, mit denen eine Farbe kodiert wird, dürfen aus beliebigen ASCII-Zeichen bestehen. Es empfiehlt sich jedoch, nur Buchstaben, Ziffern und einige „sichere" Sonderzeichen zu nehmen, womit sich etwa 70 bis 80 verschiedene Farben darstellen lassen. Enthält ein Bild mehr Farben, muss auf Zeichencodes, die aus zwei Zeichen bestehen, ausgewichen werden. Obwohl die XPM-Spezifikation keine Maximallänge der Zeichencodes vorsieht, sollte man maximal aus zwei Zeichen bestehende Zeichencodes verwenden, was bis zu 80·80=6400 Farben zulässt, da einige Programme die XPM-Datei sonst nicht lesen können. Einige Programme weigern sich außerdem, mehr als 256 Farbdefinitionen zu lesen, oder sie erzeugen beim Speichern eine Farbtabelle mit maximal 256 Farben, obwohl das XPM-Format größere Farbtabellen zulässt.

Die XPM-Spezifikation macht keine Angaben darüber, was in den Erweiterungs-Zeilen inhaltlich stehen soll; sie definiert keine Erweiterungen. Sie werden daher praktisch nicht verwendet und die meisten Programme, die nicht die libxpm zum Lesen von XPM-Dateien benutzen, verstehen sie auch nicht.

Quellen

  1. ftp://ftp.x.org/contrib/libraries/xpm-doc-A4.PS.gz

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Pixmap — Eine Rastergrafik, auch Pixelgrafik (englisch Raster graphics image, Digital image, Bitmap oder Pixmap), ist eine Form der Beschreibung eines Bildes in Form von computerlesbaren Daten. Rastergrafiken bestehen aus einer rasterförmigen Anordnung… …   Deutsch Wikipedia

  • Pixmap — Image matricielle Exemple d image matricielle Une image matricielle (ou image en mode point, ou en anglais une « bitmap » ou « raster ») est une image numérique dans un format de données qui se compose d un tableau de pixels… …   Wikipédia en Français

  • pixmap — noun raster graphics Syn: bitmap …   Wiktionary

  • Pixmap — Pixel Map Rastergrafik mit der Tiefe n (jeder Bildpunkt besitzt einen expliziten Farbwert), vergl. Bitmap …   Acronyms

  • pixmap — ● ►en n. f. ►GRAPH Image définition par un tableau à trois dimensions, deux pour les dimensions de l image et une pour la profondeur de chaque pixel …   Dictionnaire d'informatique francophone

  • Pixmap — Pixel Map Rastergrafik mit der Tiefe n (jeder Bildpunkt besitzt einen expliziten Farbwert), vergl. Bitmap …   Acronyms von A bis Z

  • X Pixmap — (XPM)  текстовый формат графических файлов. Используется серверной стороной системы X Window. Главной особенностью формата является то, что он использует семантику языка Си и может быть включён в код. Разработан в 1989 году Daniel Dardailler …   Википедия

  • Portable Pixmap — Vorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt Portable Pixmap Dateiendung …   Deutsch Wikipedia

  • X PixMap — Infobox file format name = X Pixmap extension = .xpm mime = image/x xpixmap unofficial image/x xpm unofficial owner = BULL Research creatorcode = genre = Image file formats containerfor = containedby = extendedfrom = XBM and Portable pixmap… …   Wikipedia

  • Portable pixmap — Extension .ppm, .pgm, .pbm, .pnm Type MIME image/x portable pixmap, graymap, bitmap, anymap all unofficial Développé par Jef Poskanzer Type de format Format de fichier graphique Origine de XPM …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”