ポータブルビットマップ (.pbm)

Netpbmライブラリ標準 標準

Portable Bitmap Format (PBM) は、Netpbm スイートの基本となる 1 ビットの白黒グラフィックフォーマットであり、極限までのシンプルさ、人間による可読性、およびプログラムでの自動生成を目的として設計されています。

調査とメタデータ

オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してPBMファイルを識別します:

ファイルを選択するか、ここにドロップしてください

プライベート - ファイルがデバイスの外に出ることはありません

または貼り付け Ctrl+V
ネットワーク送信ゼロのプライバシー保証: 外部サーバーへのデータ送信は0バイトです。すべての処理はお使いのブラウザのサンドボックス内でローカルに実行されます。

バイトレベルのヘッダーシグネチャ (マジックバイト)

オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してPBMファイルを識別します:

16進数シグネチャ(オフセット0):

50 31 / 50 34

ASCII表現: P1 / P4

標準化: Netpbmライブラリ標準

技術仕様

コンテナアーキテクチャ幅、高さ、1ビットのピクセル配列を指定するASCII(P1)またはバイナリ(P4)のNetpbm形式
圧縮非圧縮の生バイナリ、またはASCII文字表現
バイトエンディアンビッグエンディアンのビットパッキング(P4バイナリモード)
色空間モノクロ(1ビット白黒)
チャンネルと構造1チャンネル、1ビットモノクロ(0 = 白、1 = 黒)
最大寸法実質的に制限なし(ASCIIの数値寸法文字列)
透過性なし
ストリーミングとプログレッシブ行単位で順次ストリーミング再生

技術比較表:PBMと競合製品

技術属性PBM (現在)PGMPPMBMP
色深度1 ビットモノクロ(白黒のみ)8 ビット〜 16 ビットグレースケール24 ビット〜 48 ビット RGB カラー1 ビット〜 32 ビット RGBA
Netpbm 系の仲間PBM (Portable Bitmap)PGM (Portable Graymap)PPM (Portable Pixmap)非 Netpbm フォーマット
マジックバイトP1 (ASCII) / P4 (バイナリ)P2 (ASCII) / P5 (バイナリ)P3 (ASCII) / P6 (バイナリ)BM (0x42 0x4D)
主な用途OCR および FAX 文書処理医療画像およびグレースケールコンピュータグラフィックス教育Windows デスクトップグラフィックス

一般的な破損モードと16進数リカバリガイド

画像が水平方向に歪んだり、ピクセルが欠けたりして表示される。

根本原因: ASCII ヘッダー内のエスケープされていないコメント(「#」)または区切りホワイトスペースの欠落。

復旧: File2File.app Netpbm コンバーターを使用して、ヘッダーのフォーマットと改行を検証してください。

セキュリティ分析とパーサー攻撃ベクトル

ASCII の寸法文字列を読み取る PBM パーサーは、寸法がプラットフォームの制限を超えた場合、整数オーバーフローの影響を受けやすくなります。

既知の攻撃ベクター

  • 幅 × 高さのビットバッファ割り当て時の整数オーバーフロー。
  • 不正な ASCII ホワイトスペースストリームの読み取り時におけるバッファオーバーリード。
  • 小さなファイル内における過度に大きな寸法の宣言を通じたサービス拒否(DoS)。

防御的ベストプラクティス: PBMの最大許容寸法に上限を設定し、デコード前にビットバッファの境界を検証します。

歴史的背景とマイルストーン

1993NetpbmはPBM、PGM、PPMをまとめ、Unixなどで使われる移植性の高い画像ツール群として提供しました。
1991ストレージ効率を向上させるために、PBM バイナリモード(マジックバイト「P4」)が導入される。
1988Jef Poskanzer が、電子メールネットワーク経由でビットマップを送信するために PBM(マジックバイト「P1」)を発明する。

主なメリット

  • コンパクトな構造のため、基本的なPBMリーダーやライターを実装しやすい場合がありますが、コードの長さは言語や要件によって異なります。
  • ASCII モード(P1)は 100% 人間が読める形式であり、Notepad などの標準的なテキストエディタで作成・編集できます。
  • PBMは、単純なモノクロビットマップが役立つ一部の画像処理、コンピュータービジョン、OCRのワークフローで使われます。

技術的な制限とデメリット

  • 1 ビットのモノクロに厳密に制限されている(グレーの階調やカラーはなし)。
  • ASCII モードは非常に効率が悪く、画像データの 1 ビットあたり 1 バイトの ASCII テキスト(「0」または「1」)を使用します。
  • メタデータ、カラープロファイル、レイヤーのサポートがありません。

興味深い技術トリビア

  • ASCII PBM(「P1」)では、白ピクセルが「0」、黒ピクセルが「1」で表されます(現代の RGB の常識とは逆です)。
  • テキストファイルに「P1 2 2 1 0 0 1」と入力して保存するだけで、文字通り有効な PBM 画像を作成できます。
  • このフォーマットは、コンピュータ科学者が Usenet のニュースグループ経由でスキャンした文書を共有できるようにするために発明されました。

よくある技術的な質問

PBM、PGM、PPMの違いは何ですか?

PBMは1ビットのモノクロ(白黒のみ)、PGMはグレースケール(濃淡のグレー)、PPMはフル24ビットのRGBカラーです。

PBMファイルにおけるP1とP4の意味は何ですか?

「P1」は画像がプレーンなASCIIテキストで保存されていることを示し、「P4」は画像がコンパクトなバイナリバイトとして保存されていることを示します。

PBMファイルをPNGに変換するにはどうすればよいですか?

サーバーにデータをアップロードすることなく、ブラウザから直接File2File.appを使用して、PBMファイルを最新のPNGまたはJPG画像に変換できます。