XPM ファイル形式とは?
.xpm ファイルは、X Window System ネイティブのプレーンテキスト、インデックスカラー形式である X PixMap 形式でラスター画像を保存します。ほとんどの画像形式とは異なり、XPM ファイルは有効な C 言語のソースコードでもあります。これは静的な文字列配列を宣言しており、C や C++ プログラムは、別の画像読み込みステップを介さずに直接 #include することができます。
現在、唯一広く使用されているバージョンである XPM3 は、バイトオフセット 0 の ASCII コメント /* XPM */ で始まり、その後に C 言語の配列定義が続きます。配列の最初の文字列は、画像の寸法、色数、および各ピクセルを表す ASCII 文字数(1〜4文字)をエンコードします。後続の文字列はカラーテーブルを定義し、それらの文字コードを X11 の色名(«cornflowerblue» など)または 16 進数の RGB 値(#RRGGBB)にマッピングします。透明度は、ピクセルコードを特殊な名前 None にマッピングすることで表現されます。これは、PNG のアルファ透明度よりも数年先行していたメカニズムです。
この形式は純粋な ASCII であるため、.xpm ファイルはバージョン管理、差分(diff)の取得、およびバイナリツールなしでのプログラムによる生成が可能です。ファイルサイズはピクセル数に応じて線形に増加するため、写真には不向きですが、小さなアイコンや UI ビットマップには適しています。
XPM は、Motif やレガシーな GTK などの多くの X11 ツールキットのネイティブアイコン形式であり続けています。現代の Linux デスクトップでは、アイコンに SVG や PNG を好みますが、X11 アプリケーションは依然として XPM のフォールバックを同梱するのが一般的です。GIMP、ImageMagick、XnView、IrfanView はすべて、現代のシステムでこの形式をサポートしています。
セキュリティと安全性
リスク: LOWXPM はプレーンテキストの ASCII 形式です。実行可能コードやマクロを含めることはできません。不正な形式の XPM ファイルは、理論的には解析ライブラリのバグを引き起こす可能性がありますが(X11 システムの libXpm には過去の CVE が存在します)、現代のパッチ適用済みバージョンは脆弱ではありません。一般的なユーザーにとってのリスクは無視できるレベルです。
形式の詳細
概要XPM ファイルを開くプログラム
技術的詳細
詳細仕様| ファイルエンコーディング | プレーン ASCII テキスト(7ビットセーフ、有効な C ソースコードでもある) |
| ファイルシグネチャ | バイトオフセット 0 に /* XPM */ (XPM3)。XPM2 ファイルは ! XPM2 で始まる |
| カラーモデル | インデックスパレット。ピクセルごとに 1〜4 文字の印刷可能な ASCII 文字がカラーエントリにマッピングされる |
| 色の指定 | パレットエントリごとに X11 の色名(例:cornflowerblue)または #RRGGBB 16進数値 |
| 透明度 | None という X11 色名がピクセルコードを完全な透明にマッピングする(個別のアルファチャンネルバイトはない) |
| 圧縮 | なし - 各ピクセルは 1〜4 文字のリテラル ASCII 文字として保存される |
| 形式のバージョン | XPM1 (1989年、モノクロ C マクロ)、XPM2 (1990年、スタンドアロンデータ)、XPM3 (1991年、C 構文 - 現行) |
| 最大パレット数 | 最大 65,536 色の同時インデックスカラー |
| MIME タイプ | image/x-xpixmap |
| 寸法 | 厳密な制限なし。ファイルサイズはピクセル数に応じて線形に増加する(各ピクセル = chars_per_pixel ASCII バイト) |
| C 言語への統合 | ファイルの内容を C/C++ ソースに直接 #include でき、ローダーなしでコンパイル可能 |
| リリース日 | 1989 (XPM1, Daniel Dardailler, Bull Research Center) |
| 最新バージョン | XPM3 (1991), documented in XPM Manual v3.4i (September 1996, Arnaud Le Hors) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.xfree86.org |
XPM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。XPM ファイルについて最初の質問をしてみましょう。