• ベストアンサー

OpenGLで描いて画像ファイル出力

OpenGLで作成したアニメーションを動画ファイルとして保存したいと考えています。 調べると、連続画像を生成して他ソフト(AVI Maker等)で結合する方法があるということなんですが、OpenGLで描いたものを画像ファイル(BMPファイル等)に出力するには、どうしたら良いのでしょうか。 参考になるサイト等ありましたら、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • amru05
  • ベストアンサー率63% (33/52)
回答No.1

1.OpenGLの画像を以下の方法で取得します。 // 取得画像エリアの確保(width*height) unsigned char *)buffer =  (unsigned char *)calloc(width * height * 4, sizeof(unsigned char) ; // フロントを読み込む様に設定する glReadBuffer(GL_FRONT); // 描画内容の読込 glReadPixels(0, 0, width , height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); glFlush(); 2.これでbufferに画像(RGBA)が保存されていますから、後は希望の形式でファイルに保存します。 http://opengl.jp/oglfaq/miscellaneous.htm

参考URL:
http://son-son.sakura.ne.jp/mt/blog/2006/04/opengl_bitmap_1.html
guccho
質問者

お礼

ご丁寧に有り難うございます。 とても参考になりました。 お礼が遅れて申し訳ありませんでした。

関連するQ&A

  • OpenGLでBMP画像を出力するには?

    現在アニメーションの作成にOpenGLを使っています. この動画をきれいに保存したいのでBMP出力を考えています. 画面のキャプチャではなくBMPをプログラムにより 出力する方法を教えてください. よろしくお願いします.

  • OpenGL でのアニメーション保存について

    現在 OpenGL でアニメーションを描いています. この動画を保存するいい方法(又は,フリーソフト)を 教えてほしいです. 自分なりに調べたのですが 1コマ1コマを bmp ファイルに出力して それを繋ぎ合わせて動画にするという方法 があるんですよね? きれいなアニメーション保存の方法をお願いします. ちなみに OS は windows Me (1st) と Vine Linux 2.6 (2nd) の両方使ってます.

  • OpenGLでの連続画像の保存

    OpenGLを使用し、描画した図形がパラパラ漫画のようにアニメーションし、アニメーションするたびに一枚ずつ出力するというプログラムを作成しているのですが、連続で出力すると同じ画像ばかりが出力されてしまいます。 glReadPixel();でバッファを取得し変数に格納した画面表示の情報が更新されていないのが原因と見ていますが、修正の方法がわかりません。知ってる方がいらっしゃったらよろしくお願いします。 Visual stadio2010を使用し、UIにMFCアプリケーションを使用しています。

  • OpenGLによる描画内容をBMP出力

    今、OpenGLで描画した内容をBMP形式で出力しよう思っています。VC6を使用しています。 今のところ、  ・glReadBuffer で読み取るバッファを指定する  ・glReadPixels バッファから情報を読み取る ということぐらいしかわかっていなくて、 このあとどうすればBMPファイルとして出力できるのかがわかりません。 どなたか教えていただけないでしょうか?

  • AVI動画より指定時間内の画像を出力したい

    AVI動画より指定時間内の画像を出力したい AVIファイルより、画像を抽出したいと考えています。 次の条件でソフトウェアを探しています。 ・開始~終了時間をコマンドラインから指定し実行したい ・画像の出力形式はbmpまたはjpg  デス。 ご紹介頂きたく、よろしくお願いします。

  • 動画ファイルから画像を抽出するソフト

    aviなどの動画ファイルから画像を抽出し、 bmp,jpg形式などで保存できるソフトを探しております。 ご存知の方、どうか教えて下さい。

  • OpenGLで作成した画像をeps形式で保存

    OpenGLで作成した画像をeps形式で保存したいのですが可能でしょうか? 可能な場合どうしたら良いのでしょうか? 参考になるサイト等ありましたらお願いします。

  • ファイルをメモリに出力する方法

    ある配列をtiff画像ファイルとして出力したいのですが 配列を一度bmp画像ファイルとして出力して http://okwave.jp/qa/q8809275.html このページにある方法を使って、それをtiffファイルに変換して 残ったbmpファイルを削除するというプログラムを作りました。 この方法だと、HDDにアクセスする手順が多くなるため、ファイル数が多い時に時間がかかってしまいます。 bmpファイルをメモリにいったん保存しておいて、 それをtiffファイルに書き換えるようなプログラムを作るにはどうしたら良いですか? あるいは配列から直接tiff画像ファイルを出力する方法があれば 教えてください。

  • 保存した100枚のビットマップ画像を連続表示

    お世話になります。 昔かじったvisualC++.net2003で、連続撮影保存した100枚ぐらいのbmp画像を高速に連続表示して動画表示するようなアプリケーションを作ってみたいと思います。少し調べて見ると、bmp画像を高速にディスプレイに表示するには、Win32APIのBitblt関数を使ったり、DirectXや OpenGLといったインターフェースが必要になりそうなのですが、どれが一番高速なのでしょうか。皆様の意見をお待ちしています。OSはXP(32bit)です。

  • 連番出力ソフトを使いこなせません。詳しく教えて頂けないでしょうか?

    連番出力のソフトを使いこなす事が出来ません。 OSはvistaです。 動画を連番出力する為、「AVI2JPG」というフリーソフトをインストールし、AVI形式の動画を開こうとしたら 「問題が発生した為、プログラムが正しく動作しなくなりました」 と、エラーが出ます。 vista特有のバグ?かと、色々とHPを探し試してみたのですが改善されませんでした。 次に「aviutl」をインストールし、そちらでAVI形式の動画を開こうとしても、 「ファイルの読み込みの失敗しました。このファイルの形式には対応してないか、対応するコーデックやプラグインが登録されてない可能性があります。」 と、エラーが出ます。 BMP連番出力プラグインは同じファルダに入っております。 AVI形式の動画は「Craving Explorer」から動画サイトより保存したものです。 長ーいこと調べているのですが、調べ方が悪いせいか解決策が分かりません… 動画作成について全くの初心者で、やっとここまでたどりついたのに肝心の連番出力が出来ず途方に暮れております…! 上記の問題解決法、もしくは「もっと簡単な方法があるよ」というものがあれば、出来れば詳しく教えて頂けないでしょうか? お願い致します。