PNM ファイル形式とは?
.pnm (Portable Anymap) は、Netpbm ファミリーの3つの関連する非圧縮ラスター画像サブ形式を網羅する包括的な拡張子です。これには、PBM (Portable Bitmap、1ビット白黒)、PGM (Portable Graymap、グレースケール)、および PPM (Portable Pixmap、カラー) が含まれます。任意の .pnm ファイルの実際のサブタイプは、最初の2バイトによって識別されます。ASCII(«プレーン»)バリアントの場合は P1-P3、バイナリ(«ロー»)バリアントの場合は P4-P6 となります。
Jef Poskanzer は、1988年に Pbmplus ツールキットの一部としてオリジナルの PBM 形式を作成し、その直後に PGM と PPM を追加しました。これらの形式は、7ビットの電子メールリンクを介した転送に耐えられる、可能な限りシンプルな可逆画像表現として設計されました。ASCII バリアントは、プレーンテキストのヘッダーの後に空白で区切られた10進整数としてピクセル値を保存します。バイナリ バリアントは、よりコンパクトなストレージのために、ヘッダーの直後に生のバイトをパックします。
色深度は 1 bpp (PBM) からチャンネルあたり 16 bpp (16ビットの maxval を持つ PGM/PPM) の範囲で、カラー画像では最大 48 bpp に達します。この形式は、圧縮、暗号化、カラープロファイル、EXIF データ、またはサムネイルを定義していません。意図的に最小限に抑えられています。
PNG は可逆保存のための現代的な代替手段ですが、.pnm ファイルは Unix の画像処理パイプラインにおいて遍在する中間形式として残っています。ImageMagick、GIMP、FFmpeg、および事実上すべての Unix 画像ツールは、この形式をネイティブに読み書きします。
セキュリティと安全性
リスク: LOWPNM/PBM/PGM/PPM は、最もシンプルな画像形式の1つです。プレーンテキストのヘッダーと生のピクセルデータ(または ASCII 値)で構成されています。コード実行、スクリプト、圧縮の脆弱性は存在しません。開くのは非常に安全です。主なリスクは、高解像度画像の場合に非圧縮ファイルサイズが非常に大きくなることです。
形式の詳細
概要PNM ファイルを開くプログラム
技術的詳細
詳細仕様| サブ形式 | PBM (P1/P4, 1ビット)、PGM (P2/P5, グレースケール)、および PPM (P3/P6, カラー) の総称 |
| マジックバイト | 最初の2バイト:`P` (0x50) + 数字 `1`-`6` (0x31-0x36) - サブタイプと ASCII 対バイナリエンコーディングを識別 |
| ASCII バリアント (P1-P3) | 空白で区切られた10進整数として保存されるピクセル値 - 人間が判読可能で7ビットセーフ |
| バイナリ バリアント (P4-P6) | ASCII ヘッダーの直後にパックされた生のピクセルバイト - よりコンパクトで、論理データは同じ |
| 圧縮 | なし - すべてのバリアントでピクセルデータは非圧縮で保存される |
| 色深度 | 1 bpp (PBM); チャンネルあたり 8 または 16 bpp のグレースケール (PGM); 24 または 48 bpp のカラー (16ビット maxval を持つ PPM) |
| ヘッダー構造 | ASCII フィールド:マジックナンバー、オプションの `#` コメント行、幅、高さ、その後に maxval (P1/P4 1ビットの場合は不在) |
| バイト順序 | バイナリ P5/P6 バリアントの 16ビットサンプルの場合はビッグエンディアン。8ビットまたは ASCII 形式には適用不可 |
| Maxval 制約 | 1-65,535 (uint16) である必要があります。値が 255 以下の場合は、バイナリ P4-P6 モードでサンプルあたり 1バイトを使用します |
| 寸法 | 定義された最大値はありません。実際には利用可能なシステムメモリによって制限されます |
| MIME タイプ | `image/x-portable-anymap`; サブタイプ: `image/x-portable-bitmap`, `image/x-portable-graymap`, `image/x-portable-pixmap` |
| PAM 拡張 | P7 (`.pam`, Portable Arbitrary Map) は、PNM を任意のチャンネル数とビット深度に拡張します |
| 典型的な用途 | Unix 画像処理パイプラインの中間形式。ImageMagick、GIMP、FFmpeg、およびほとんどの Unix 画像ツールのネイティブ I/O |
| リリース日 | 1988 (Jef Poskanzer's Pbmplus toolkit; PBM first, PGM and PPM by year-end) |
| 最新バージョン | Netpbm 11.x (2020s); format spec stable since early 1990s |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | netpbm.sourceforge.net |
PNM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PNM ファイルについて最初の質問をしてみましょう。