Che cos'è il formato di file XPM?
Un file .xpm memorizza un'immagine raster nel formato X PixMap - un formato a colori indicizzati in testo semplice nativo di X Window System. A differenza della maggior parte dei formati di immagine, un file XPM è anche un codice sorgente C valido: dichiara un array di stringhe statiche che i programmi C e C++ possono includere tramite #include direttamente, senza una fase separata di caricamento dell'immagine.
XPM3, l'attuale e unica versione ampiamente utilizzata, inizia con il commento ASCII /* XPM */ all'offset byte zero, seguito dalla definizione di un array C. La prima stringa nell'array codifica le dimensioni dell'immagine, il numero di colori e quanti caratteri ASCII rappresentano ogni pixel (1-4). Le stringhe successive definiscono una tabella dei colori, mappando quei codici di caratteri ai nomi dei colori X11 (come cornflowerblue) o ai valori esadecimali RGB (#RRGGBB). La trasparenza è espressa mappando un codice pixel al nome speciale None - un meccanismo che precede la trasparenza alfa di PNG di diversi anni.
Poiché il formato è puro ASCII, i file .xpm possono essere sottoposti a controllo di versione, confrontati tramite diff e generati programmaticamente senza strumenti binari. La dimensione del file cresce linearmente con il numero di pixel, rendendo il formato poco pratico per le fotografie ma molto adatto per piccole icone e bitmap dell'interfaccia utente.
XPM rimane il formato icona nativo per molti toolkit X11 come Motif e il vecchio GTK. I moderni desktop Linux preferiscono SVG o PNG per le icone, ma le applicazioni X11 includono ancora comunemente XPM come fallback. GIMP, ImageMagick, XnView e IrfanView supportano tutti il formato sui sistemi moderni.
Sicurezza e incolumità
RISCHIO: LOWXPM è un formato ASCII in testo semplice; non può contenere codice eseguibile o macro. File XPM malformati potrebbero teoricamente innescare bug nelle librerie di analisi (esistono CVE storiche in libXpm sui sistemi X11), ma le versioni moderne patchate non sono vulnerabili. Il rischio per gli utenti comuni è trascurabile.
Dettagli del formato
in sintesiProgrammi che aprono file XPM
Dettagli tecnici
specifiche approfondite| Codifica del file | Testo ASCII semplice (sicuro a 7 bit; anche codice sorgente C valido) |
| Firma del file | /* XPM */ all'offset byte 0 (XPM3); i file XPM2 iniziano con ! XPM2 |
| Modello di colore | Tavolozza indicizzata; 1-4 caratteri ASCII stampabili per pixel mappati su voci di colore |
| Specifica del colore | Nomi dei colori X11 (es. cornflowerblue) o valori esadecimali #RRGGBB per voce della tavolozza |
| Trasparenza | Il nome del colore X11 «None» mappa un codice pixel alla trasparenza totale (nessun byte del canale alfa separato) |
| Compressione | Nessuna - ogni pixel memorizzato come 1-4 caratteri ASCII letterali |
| Versioni del formato | XPM1 (1989, macro C monocromatiche), XPM2 (1990, dati standalone), XPM3 (1991, sintassi C - attuale) |
| Tavolozza massima | Fino a 65.536 colori indicizzati simultanei |
| Tipo MIME | image/x-xpixmap |
| Dimensioni | Nessun limite rigido; la dimensione del file cresce linearmente con il numero di pixel (ogni pixel = byte ASCII chars_per_pixel) |
| Integrazione C | Il contenuto del file può essere incluso tramite #include direttamente nel sorgente C/C++ e compilato senza un caricatore |
| Rilasciato | 1989 (XPM1, Daniel Dardailler, Bull Research Center) |
| Ultima versione | XPM3 (1991), documented in XPM Manual v3.4i (September 1996, Arnaud Le Hors) |
| Standard aperto | Sì · royalty-free |
| Specifica | www.xfree86.org |
Conversioni XPM
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file XPM.