PBMはPortable Bit Mapの略称です。PBMには「アスキー形式」と「バイナリー形式」の2種類があります。データがアスキー形式化バイナリー形式化を区別する場合はヘッダーの先頭2バイト(マジックナンバー)で判別します。横幅と縦幅のヘッダー情報はバイナリーではなく文字列となっています。ヘッダーの先頭の文字が#(シャープ)の場合、改行コード($0A)まで「コメント」とみなされます。
画像データ本体がアスキー形式の場合、数値はセパレーター($13, $09, $20)で区切られます。
画像のデータはビットマップとなっており1バイトのデータの上位ビットが左側、下位ビットが右側に対応します。1バイトのデータは8ビットですので1バイトで8個の点を表すことができます。
■アスキー形式
ヘッダー 2バイト P1 1バイト 改行コード 不定 横幅を示すアスキー文字列 不定 セパレーター 不定 縦幅を示すアスキー文字列 1バイト 改行コード データ 不定 ビットデータを表す数値(アスキー文字列) 不定 セパレーター 不定 ビットデータを表す数値(アスキー文字列) 不定 セパレーター 不定 :
■バイナリ形式
ヘッダー 2バイト P4 1バイト 改行コード 不定 横幅を示すアスキー文字列 不定 セパレーター 不定 縦幅を示すアスキー文字列 1バイト 改行コード データ 1バイト ビットデータを表す数値(バイナリ) 1バイト :