掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
AVIから1フレームを取り込み、DirectDrawサーフェイスに描画するには (ID:54843)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VC++6.0を使用しております。 AVIファイル(16ビット)からある1フレームを切り出し、 それをDirectDrawのサーフェイス(オフスクリーン)へ書き出したいのですが、 以下のところで躓いております。 ディスプレイの設定は32ビットTrueColorです。 void myLoadFrame(int iIndex,DWORD* lpData) { //iIndex・・・切り出すフレーム //lpData・・・サーフェイスのポインタ(DDSURFACEDESC.lpSurface) //(サーフェイスはすでに作成済) /***(中略)***/ //AVIFileOpen、AVIFileGetStream、AVIStreamGetFrameOpen後、 DWORD* lpTmp = (DWORD*)AVIStreamGetFrame(pgfFrame, iIndex); //lpTmpにiIndexフレーム目のBMPイメージを取得。 /*ここで、どうやってlpDataにlpTmp+sizeof(BITMAPINFOHEADER)を コピーするべきか・・・*/ } 尚、取得したDIBの形式設定は以下の通りです。 bmiFrame.biSize = sizeof(BITMAPINFOHEADER); bmiFrame.biPlanes = 1; bmiFrame.biBitCount = 16; bmiFrame.biWidth = giWidth; //別関数にて取得済 bmiFrame.biHeight = giAviHeight;//別関数にて取得済 BITMAPイメージとサーフェイスの並びは、上下が逆になる、 というのをとりあえず無視しつつ、 自分なりに色々とやってみてはいるのですが、 どれも正解には遠く及ばないようでした。 説明不足な感は重々承知しておりますが、 解決の糸口となるヒントや情報等ありましたら お知恵をお貸し下さると助かります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.