Qu'est-ce que le format de fichier XPM ?
Un fichier .xpm stocke une image matricielle au format X PixMap - un format en texte brut à couleurs indexées natif du système X Window. Contrairement à la plupart des formats d'image, un fichier XPM est également un code source C valide : il déclare un tableau de chaînes statiques que les programmes C et C++ peuvent directement utiliser via #include, sans étape de chargement d'image séparée.
XPM3, la version actuelle et la seule largement utilisée, commence par le commentaire ASCII /* XPM */ à l'octet zéro, suivi d'une définition de tableau C. La première chaîne du tableau encode les dimensions de l'image, le nombre de couleurs et le nombre de caractères ASCII représentant chaque pixel (1-4). Les chaînes suivantes définissent une table de couleurs, associant ces codes de caractères à des noms de couleurs X11 (tels que cornflowerblue) ou à des valeurs hexadécimales RGB (#RRGGBB). La transparence est exprimée en associant un code de pixel au nom spécial None - un mécanisme qui précède la transparence alpha du PNG de plusieurs années.
Parce que le format est en ASCII pur, les fichiers .xpm peuvent être gérés par contrôle de version, comparés (diff) et générés par programmation sans outils binaires. La taille du fichier augmente linéairement avec le nombre de pixels, ce qui rend le format peu pratique pour les photographies mais bien adapté aux petites icônes et aux bitmaps d'interface utilisateur.
XPM reste le format d'icône natif pour de nombreux kits d'outils X11 tels que Motif et l'ancien GTK. Les bureaux Linux modernes préfèrent le SVG ou le PNG pour les icônes, mais les applications X11 fournissent encore couramment des solutions de secours en XPM. GIMP, ImageMagick, XnView et IrfanView prennent tous en charge le format sur les systèmes modernes.
Sécurité et sûreté
RISQUE : LOWLe XPM est un format ASCII en texte brut ; il ne peut pas contenir de code exécutable ou de macros. Des fichiers XPM malformés pourraient théoriquement déclencher des bogues dans les bibliothèques d'analyse (des CVE historiques existent dans libXpm sur les systèmes X11), mais les versions modernes corrigées ne sont pas vulnérables. Le risque pour les utilisateurs quotidiens est négligeable.
Détails du format
en brefProgrammes qui ouvrent les fichiers XPM
Détails techniques
spécifications approfondies| Encodage du fichier | Texte ASCII brut (compatible 7 bits ; également code source C valide) |
| Signature de fichier | /* XPM */ à l'octet 0 (XPM3) ; les fichiers XPM2 commencent par ! XPM2 |
| Modèle de couleur | Palette indexée ; 1 à 4 caractères ASCII imprimables par pixel correspondent aux entrées de couleur |
| Spécification des couleurs | Noms de couleurs X11 (ex: cornflowerblue) ou valeurs hexadécimales #RRGGBB par entrée de palette |
| Transparence | Le nom de couleur X11 « None » associe un code de pixel à une transparence totale (pas d'octet de canal alpha séparé) |
| Compression | Aucune - chaque pixel est stocké sous forme de 1 à 4 caractères ASCII littéraux |
| Versions du format | XPM1 (1989, macros C monochromes), XPM2 (1990, données autonomes), XPM3 (1991, syntaxe C - actuelle) |
| Palette maximale | Jusqu'à 65 536 couleurs indexées simultanées |
| Type MIME | image/x-xpixmap |
| Dimensions | Pas de limite stricte ; la taille du fichier augmente linéairement avec le nombre de pixels (chaque pixel = octets ASCII selon chars_per_pixel) |
| Intégration C | Le contenu du fichier peut être inclus via #include directement dans le code source C/C++ et compilé sans chargeur |
| Publié | 1989 (XPM1, Daniel Dardailler, Bull Research Center) |
| Dernière version | XPM3 (1991), documented in XPM Manual v3.4i (September 1996, Arnaud Le Hors) |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.xfree86.org |
Conversions XPM
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers XPM.