画像ライブラリの作成の勉強でPNM形式が一番簡単だという事で調べて見たんですが、データ形式は6種類あって、P1P3はASCIIコードP4P6はバイナリという事が分かりました。
文字のJを表す場合
P1 # This is an example bitmap of the letter "J" 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
最初のP1がデータの種類
#の付いている行がコメント
その次の6 10 は画像の横、縦のサイズ
0と1で0が白、1が黒
という事が分かりました。
また、自分で実際画像を変換(フォトショップで)してみました。
変換済みファイル
これをバイナリエディタで見てみました。

どうやら、このファイルはP4のデータのようです。
このファイルをP1に変換する方法はないですか?
###追記
cpp
1ifstream fin{ fpath, ios::binary }; 2 3int ch; 4while ((ch = fin.get()) != -1) 5{ 6 if (ch < 10) { 7 cout << hex << uppercase << "0" << ch << ' '; 8 } 9 else { 10 cout << hex << uppercase << ch << ' '; 11 } 12} 13
バイナリモードで開いて、それを16進数で表示しているんですが、この方法だと、Pnが解析できないですよね?
回答2件
あなたの回答
tips
プレビュー
2017/07/03 08:03
2017/07/03 09:36 編集
2017/07/03 11:52