
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- Illustrator(イラストレーター) ワードに貼った画像のキャンバスと画像本体のサイズの調整 2 2022/05/19 18:31
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(パソコン・スマホ・電化製品) 学校からGitHubのアカウントを作って事前学習として動画を見て、動画の通りに操作していたら、アカウ 4 2023/04/16 11:44
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSV形式で出力する際の保存先に...
-
Base64でエンコードした後の文...
-
サウンド出力のデバイスを選択...
-
fortranのプログラムについて ...
-
VC++でUTF-8のファイルを出力し...
-
名前をつけて保存する
-
拡張子.vsdをイラストレーター...
-
COBOLのファイル出力
-
C++ BuilderでPDF出力
-
【ExcelVBA】UTF-8(BOM無)でC...
-
VC++2010のCSV形式の出力につい...
-
I/Oエラー(Delphi)
-
C言語でMS-DOSプロンプト入力で...
-
ワードからPDF変換でグラフが表...
-
stdin,stdoutについて
-
ファイル形式またはファイル拡...
-
Visual Basic 6.0で 1行 読...
-
C言語による10進数→16進数変換...
-
fortranのtxtファイル出力書式...
-
コマンド(例えばls)の出力結果...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】UTF-8(BOM無)でC...
-
テキストファイルに改行コード...
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
シェルコマンドの 2>&1 とはど...
-
Acccess レポートをグループ別...
-
ファイル形式またはファイル拡...
-
pcap形式データをテキストへ抽出
-
ファイル出力の場所を指定
-
AccessVBA複数レポート条件毎に...
-
外国語とCSVについて
-
VBA でメモ帳へ保存する際の保...
-
サウンド出力のデバイスを選択...
-
C++ fprintf_sの使い方がわからん
-
アプリを実行すると、作成者を...
-
ファイルの文字コードをUTF-8に...
-
1行ずつではなくまとめてファイ...
-
Wordマクロで指定したフォルダ...
-
SendKeys "^V", True(貼り付け...
-
CSVファイルを任意の場所に出力...
おすすめ情報