- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:静止画と動画の合成)
静止画と動画の合成方法について
このQ&Aのポイント
- 静止画と動画を重ね合わせて表示する方法についての質問です。
- あるソフトのプラグインを作っている中で、静止画と動画の合成を行いたいですが、うまくできません。
- 現在、静止画と動画の合成にはDirectShowのビデオミキシングレンダーを使用していますが、新たにOpenGLを利用した合成方法を試しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すみません。私はDirectShowでそのようなことをやったことが無いので詳しく説明できませんが、mattyun26さんがすでに違う方法(ビットマップやビットデータがあれば)合成できると思っていました。^^; とりあえず私が言ったのは、オフスクリーンレンダリングという手法で、メモリDCに対してレンダリングするものです。 これは、あらかじめ、メモリDC(ビットマップはDIB)で作成しておき、そのDCを使用して、wglMakeCurrentなどを呼び出します。 レンダリング終了じにはこのDIBにレンダリング結果が入っていますので、そのままHBITMAPとして使用するかbitsをなめてデータを取得するかになると思います。
その他の回答 (2)
- clsdi99
- ベストアンサー率63% (31/49)
回答No.2
レンダリングコンテキスト作成時、SetPixelFormatに PFD_DRAW_TO_WINDOW を指定しているのをPFD_DRAW_TO_BITMAPにして 一旦Bitmapにしたものを重ねていてはいかがでしょうか?
- saitoha
- ベストアンサー率81% (9/11)
回答No.1
OpenGLのレンダリングコンテキストが表示されている別ウィンドウを作って、SetLayeredWindowAttributes等で単色カラーキーの透過ウィンドウにして、ウィンドウレベルで無理矢理重ねるという逃げ方は無しですか?
質問者
お礼
回答ありがとうございます。 その方法もあるとは思いますが、さすがにウィンドウを動かすというのはちょっとって感じです。 ありがとうございます。
お礼
回答ありがとうございます。 PFD_DRAW_TO_BITMAPにするのは思いつきませんでした。 しかし一旦Bitmapにしたものをどう扱っていいのかがよくわかりません。 そのビットマップはレンダリングコンテキストに作られるのですよね?? VMRALPHABITMAP構造体ではBitmapのハンドラ(HBITMAP)を指定するのですが、そのレンダリングコンテキストのどこを指定すればいいのでしょうか? そのレンダリングコンテキストのBitmapからまた何か作成するのでしょうか?? 素人質問ばかりで申し訳ございませんが、よろしくお願いします。