0

フォローアップ: Directdraw: Rotate video stream

カメラのビデオ ストリームをプレビューすることはできましたが、画像が 90° 回転してランドスケープ モードになっています。現在、カメラ画像を回転させて通常の状態に戻す方法を探していますが、問題は、どこから始めればよいかさえわからないことです。これは、DDSURFACEDESC 構造の VideoCaptureFilter、VideoInfoHeader で行われますか? 追加のフィルターを使用してのみ回転を行うことはできますか? フィルター設定ですか?

4

1 に答える 1

1

これは通常、BI_SRCPREROTATE フラグを使用して行われることがわかりました。

特別なフラグ (BI_SRCPREROTATE) が開発されました。これは、GDI とビデオ レンダラーに、カメラからの画像の向きが正しい向きであることを伝えます (レンダリング時に回転しないでください)。デバイス上でシェルを回転させると、デバイスも物理的に回転するため、これが必要になります。ディスプレイ ドライバーがシェルと UI をレンダリングするためにビットマップを回転させる場合、この特定のビットマップを回転させてはならないことを認識する必要があります。フラグは、BITMAPINFO 構造体の biCompression フィールドに OR されます。

http://www.tech-archive.net/Archive/PocketPC/microsoft.public.pocketpc.developer/2005-12/msg00850.htmlから

サンプル コードは次のようになります。

  pVih->bmiHeader.biCompression &= ~BI_SRCPREROTATE;

http://innovator.samsungmobile.com/bbs/discussion/view.do?parentCategoryId=4&messageId=45549&boardId=224&platformId=2から

ただし、この方法は私が使用している HTC HD2 では機能しませんが、他のデバイスでは機能する可能性があるため、これを質問に追加することにしました。

于 2010-02-23T14:59:26.130 に答える