画像形式

PPM

Portable Pixmap:画像処理工程向けの単純な非圧縮ラスター画素値です。

形式を詳しく見る

PPMから変換

PPM画像の変換先の形式を選択します。

すべての変換(22)

印の付いた変換では、レイヤーの統合、ラスタライズ、トーンマッピング、アニメーションの消失などが生じる場合があります。

PPMに変換

PPMに変換する元の形式を選択します。

すべての変換(37)

印の付いた変換では、レイヤーの統合、ラスタライズ、トーンマッピング、アニメーションの消失などが生じる場合があります。

PPMについて

Portable Pixmap

PPMはNetpbmの単純なRGBラスター交換形式です。各画素に赤、緑、青の値と、宣言された最大値を持ちます。短いヘッダーが画像サイズと精度を定義し、複雑な画像コンテナーではなく、色の値に直接アクセスしたいプログラムに便利です。

P3は数値をテキストで保存し、P6はバイナリで保存します。バイナリの成分値はmaxvalが256未満なら1バイト、それ以外は最大65535まで2バイトで、上位バイトを先に置きます。PPMにはアルファや圧縮がありません。仕様は非線形RGBを記述しており、線形やsRGBなどの別の規則を使う場合は、処理系間で明示的に合意する必要があります。

PPMはカラー画像処理、デバッグ、単純な処理工程間の交換に使ってください。画素を確認しやすい反面、ファイルが大きくなり、豊富なメタデータもありません。科学データや描画結果の値を取り込む前に、maxvalと色の解釈を確認してください。線形データを表示用に符号化された色として扱うと、結果が変わります。

主な特性

圧縮
非圧縮
透明度
非対応
アニメーション
非対応
拡張子
.ppm
MIMEタイプ
image/x-portable-pixmap · Netpbmで慣例的に使われる未登録タイプ
メタデータ
ヘッダー, コメント
適した用途
RGB処理とデバッグ
色深度
maxvalは最大65535

Netpbmはこれらの画素値を非圧縮で保存します。ただし、保存前の減色、しきい値処理、maxvalの変更では情報が失われる場合があります。テキストとバイナリの表現は構造を変えますが、画像の意味は変えません。

PPMの歴史

この形式は、記録されたPbmplus/Netpbmの発展に属します。その歴史は、最初のビットマップの考え方、後のチャンネルモデル、ライブラリー開発を区別しています。

  1. 1980年代

    単純な交換用の表現

    Jef Poskanzerは、テキストのみのメールでも扱えるほど単純な表現でビットマップを交換するためにPBMを考案しました。互換性のない画像ツール間で、安定してデータを交換することを目的としていました。

  2. 1988

    Pbmplusとカラー形式

    Poskanzerは1988年にPbmplusを配布し、その年の終わりまでにPGMとPPMを追加しました。元のビットマップ交換を、グレースケールとRGB画像へ拡張したツール群です。

  3. 1993

    PbmplusからNetpbmへ

    Netpbmは保守が止まったPbmplusの新しいリリースとして始まり、ネットワークを通じて寄せられた修正と改善を取り込みました。この形式群は、画像ツールをつなぐ役割を持ち続けています。

  4. 2000-04

    2バイトの画素値

    保守されているNetpbmの配布版は、PGMとPPMについて、maxvalが最大65535の2バイト画素値と、そのバイト順を記述しています。これにより、以前の拡張にあった曖昧さが解消されました。

PPMとほかの形式の比較

形式ごとに利点と制約が異なります。画像と作業の目的に合わせて選択してください。

PGM

PPMとPGMの比較

PGMは画素ごとにグレースケールの値を一つ保存します。グレースケール処理やマスクに適しています。カラー画像の書き出しでは輝度への変換方法を選ぶ必要があり、色情報は失われます。

PBM

PPMとPBMの比較

PBMは白と黒だけを保存し、バイナリ形式では画素あたり1ビットを使います。2値のマスクや線画に適しています。階調のある画像にはしきい値処理やディザリングが必要で、連続したグレーの階調は保持できません。

PAM

PPMとPAMの比較

PAMはNetpbmを拡張し、RGB_ALPHAやGRAYSCALE_ALPHAなどのタプル型と成分数を明示します。チャンネルを意識した処理に適していますが、受け取り側のツールとタプルの意味を共有する必要があります。データは非圧縮のままです。

PNG

PPMとPNGの比較

PNGはデコード後の画素を可逆圧縮で保持し、アルファチャンネルも格納できます。透過画像やスクリーンショットに適していますが、編集可能な文書のレイヤーやカメラのセンサーデータは保持できず、写真ではファイルが大きくなることがあります。

PPMについてのよくある質問

この形式には何が保存されますか?

PPMはNetpbmの単純なRGBラスター交換形式です。各画素に赤、緑、青の値と、宣言された最大値を持ちます。短いヘッダーが画像サイズと精度を定義し、複雑な画像コンテナーではなく、色の値に直接アクセスしたいプログラムに便利です。

圧縮は画質にどう影響しますか?

Netpbmはこれらの画素値を非圧縮で保存します。ただし、保存前の減色、しきい値処理、maxvalの変更では情報が失われる場合があります。テキストとバイナリの表現は構造を変えますが、画像の意味は変えません。

P3とP6は異なる画像型ですか?

PPMのRGB画素値を、テキストまたはバイナリで表す方式です。表現を切り替えてもアルファは加わらず、画像も圧縮されません。デコーダーはmaxvalと、それに対応する成分値の幅を解釈する必要があります。

ファイルを開く前に何を確認すればよいですか?

マジックナンバー、画素値の精度、タプルやチャンネルの意味を確認してください。仕様がより広い範囲を許していても、単純な読み取りツールの多くは、一枚のバイナリ画像と8ビット画素値にしか対応しません。

別の形式に書き出すと何が変わりますか?

描画済みの出力を作る際は、maxvalと色の解釈を保持してください。グレースケールや2値の変換先は意図的に情報を削除します。アルファにはアルファ付きのタプルか、別のマスクが必要です。任意のコメントは引き継がれない場合があります。

この形式はどのような用途に適していますか?

PPMはカラー画像処理、デバッグ、単純な処理工程間の交換に使ってください。画素を確認しやすい反面、ファイルが大きくなり、豊富なメタデータもありません。科学データや描画結果の値を取り込む前に、maxvalと色の解釈を確認してください。線形データを表示用に符号化された色として扱うと、結果が変わります。

参考資料