PNM / Netpbm画像ファイルをクリーニング
14 今なお現役で使われている、最も古い画像形式ファミリーの一つ
PNMはNetpbmファミリー——PBM(純粋な白黒ビットマップ)、PGM(グレースケール)、PPM(フルカラー)——を包
括しており、Unixの画像ツールの最も初期の時代にまで遡り、今日でも驚くほど多くの科学的画像処理、コンピュ
ータビジョン研究、コマンドラインの画像処理ワークフローの標準出力形式であり続けています。各バリアントは
同じ基本構造を共有しています。短いASCIIの「マジックナンバー」(P1からP6、より
新しいPAMバリアントではP7)に続いて空白区切りの寸法情報、そして単純なビットマップ以外のす
べてについては生のピクセルデータが続きます。
詳しく見る:なぜここではメタデータに関する疑問がほとんど存在しないのか
Netpbmのヘッダー形式は、画像の寸法情報の前に#で始まるコメント行を1行許可しており、これ
が実際にメタデータの話のすべてです——カメラ情報ブロックも、GPSフィールドも、埋め込みサムネイルも、
EXIFやIPTCに似たものは何もありません。もしPNMファイルを見かけたとしたら、それはほぼ確実に、研究のワ
ークフロー、コマンドラインでの変換手順、あるいは組み込みシステムに由来するものであり、カメラや携帯
電話に由来するものではありません。だからこそ、JPEGやHEICに当てはまるメタデータのプライバシー面での
考え方は、ここではほとんど当てはまらないのです。それでも重要であり続けるのは、本サイトの他のあらゆ
る場所と同じ構造的な保証です。ファイルが生のピクセルへとデコードされ、ゼロから再構築される際、コメ
ント欄が何かを紛れ込ませるために使われていたとしても関係なく、形式が実際に必要とする以上のコメント
行や余分なバイトはすべて破棄されます。
なぜPNMファイルをそもそもここに通すのか
比較ページが、そもそもメタデータの少ない形式全般について 扱っているのと大きく同じ理由からです。完全な再構築は、ヘッダーから削除する価値のある重要な内容があった かどうかにかかわらず、「元のバイトの何一つ信用しない」という構造的なリスクのカテゴリを閉じます。ワーク フロー上、後でより一般的な形式に結果が必要な場合、出力形式をPNG、JPEG、WebPに強制指定することも、ここ での他のどの入力とも同じ一回の処理の中で行えます。