アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在アニメーションの作成にOpenGLを使っています.

この動画をきれいに保存したいのでBMP出力を考えています.
画面のキャプチャではなくBMPをプログラムにより
出力する方法を教えてください.

よろしくお願いします.

A 回答 (2件)

はい.オフィシャルマニュアルの赤いやつと青いやつと緑のやつを持ってます.英語のリファレンスならgoogleで検索するとたくさんヒットする(MSDN英語サイトなど)ので,もし本を持ってなかったらそちらを参考にすると良いと思います.


void glReadPixels(x, y, width, height, format, type, *pixels)
x, yが取得領域左下の位置,width, heightが大きさ,formatが取得するデータの種類(=GL_RGB),typeがデータ型(=GL_UNSIGNED_BYTE),pixelsが取得データを格納する領域.

ただし,これをする前にglReadBuffer(GLenum)でどのバッファから読むかを指定しないといけません.フロントバッファから読むんだったら,
glReadBuffer(GL_FRONT);
とします.
    • good
    • 0
この回答へのお礼

ほんとにどうもありがとうございます.

いろいろ参考にしてがんばっていきます.

お礼日時:2003/06/22 00:07

どの部分が問題なんでしょうか?


glReadPixelsでフレームバッファのRGB値を読出して,それにヘッダを付けてセーブするという流れだと思うんですが.

ピクセルオーダーは左下から右上で同じだし,変換作業もあまり要らなさそうな.
BMPは1ライン当り4の倍数バイトになってないと行けないらしいので,その調整だけは要るんですかね.取得する画像の幅を4の倍数ピクセルに固定するか,RGBA4バイトを取得してAを無視して32bit BMPにするかすれば調整無しで良さそうですね.各ラインを数バイトずつずらすよりOpenGLのデータ転送の方が早いだろうし.

ところで,「画面のキャプチャ」機能ではダイレクトレンダリングをしているOpenGLの画面ってキャプチャ出来ないですよね.
    • good
    • 0
この回答へのお礼

どうもありがとうございます.

glReadPixelsって関数があるんですね.
使い方がはっきりわからないのでもう少し調べてみます.

画面のキャプチャは単に画面に描かれたものを保存する
フリーソフトを使えばできました.
ただ,画像に乱れがあるのでちょっと好ましくなくて.

glReadPixelsの詳しい使い方は
参考書などを見られたのでしょうか?

お礼日時:2003/06/17 00:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!