
No.2ベストアンサー
- 回答日時:
PPM/PGM形式は決まったヘッダーとそれに応じた画像をそのまま書き出せば良いので、他の画像形式に比べて簡単ですね。
<PPMバイナリー形式例>
P6 <--- ppmバイナリーを表す
# sample.ppm
237 366
255
.....バイナリー画像データが続く
・1行目はマジックナンバー(識別子)である.
1行目に"P6"とあればppm(Binary)形式であることを示している.
・2行目はコメント文である.コメント文の前には"#"がついている.
・3行目は画像のサイズ(dot)であり,width, heightの順で記述されている.
・4行目は最大の色調値を表す.P6の場合は普通255と決められている.
・5行目以降は実際の画像データが記述されている.
各ピクセル値(int)を RGB の順にBinary形式で記述されている.
つまり画像データ部分は次のようなイメージで表されている.
231 228 218 215 226 282 …
つまり,RGBRGBR…表すように並んでいる.
<バイナリー出力>
形式的には、上記のように簡単なので「Cでどの様にバイナリーファイル出力するか?」が問題のようですね。
ファイルの出力にはfopen/fprint/putc/fwrite などを使用しますのでその辺の使い方を良く調べれば。。と思います。
http://www9.plala.or.jp/sgwr-t/c/sec17.html
注意点は、Windowsでfopenする場合、通常はアスキーモードなので勝手に"\n"が挿入されたりしますのでとんでもないことになりますので、バイナリーモードでfopenしてください。
バイナリーモード例)
File *fp = fopen("test.ppm","wb") ;
(PS)
ppmのフォーマットはASCIIでもバイナリーでも選択できますので、バイナリー出力が不安ならばASCII出力でも良いと思います。ASCII形式ならデータも読みやすいので、最初はお薦めです(近頃のPCならASCIIでもバイナリーでも表示スピードは大して変わらないと思います)
参考URL:http://www.mm2d.net/c/c-10.shtml
ご回答有難うございます。
お察しの通り、PPM形式は非常に簡単ですが、どの様にバイナリファイル出力するかが分かりませんでした。ファイル入出力については自分で勉強するしかありませんね。
No.1
- 回答日時:
ppm/pgm のファイル形式がわかっているならバイナリとして書き出すだけです。
fopen("test.ppm","wb")
のようにオープンして
unsigned char でバイトを書き出すような感じでいいと思います。
早速の回答有難うございます。
ただ、案の定よく分かりません。もちろんこれはファイル入出力等を勉強していない自分が悪いのでBLUEPIXY様のせいではありません。実際には画像を作るのはCの勉強がもう少し進んでからにしようと思ってますが、使用している入門書にppmに関する記述が無く、ネットで検索しても実際にバイナリのppmの画像を作っているCのソースがあまり見当たらなかったので、これからどうやって勉強しようかな~と思い質問させて頂きました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AviUtlでAVI出力が途中までしか...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
コマンド(例えばls)の出力結果...
-
AccessVBA複数レポート条件毎に...
-
VC++でUTF-8のファイルを出力し...
-
pcap形式データをテキストへ抽出
-
VBA フォルダ見える化のコード...
-
dataファイルをxtxファイルにす...
-
C++を始めたばかりでVC++2008の...
-
windows.hがincludeされない
-
処理負荷特定で考えられる要因...
-
VCでクラスのメモリ配置の解析
-
フルパスから最後のディレクト...
-
ディレクトリ/ファイル リスト...
-
C言語初心者の質問失礼します。
-
VisualStudioのプロジェクトリ...
-
この問題のファイルを読み込ん...
-
libssh2のインクルード
-
FTPでputすると空ファイルが出...
-
マイクラでPythonのプログラミ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
AccessVBA複数レポート条件毎に...
-
Wordマクロで指定したフォルダ...
-
Acccess レポートをグループ別...
-
ファイルの文字コードをUTF-8に...
-
ファイル出力の場所を指定
-
BitBltについて。
-
ファイル形式またはファイル拡...
-
pcap形式データをテキストへ抽出
-
シェルコマンドの 2>&1 とはど...
-
CSVファイルを任意の場所に出力...
-
1行ずつではなくまとめてファイ...
-
raw形式からbmp形式への書き込...
-
CBool関数について VB6とVB.net...
-
VC++での外部ファイル(batファ...
-
CreateProcess関数と実行後の戻...
-
アクセス>マクロ>テキスト変換
-
半年以上前のファイルの時刻表示
おすすめ情報