いつもお世話になっております。
DirectShowのサンプル「StillCap」を
もとにオリジナルのアプリケーションを作成しております。
「StillCap」で出力されるビットマップファイルの解像度は
常に320*240で出力されますが、
変更する方法はあるのでしょうか。
ご存知の方は何卒ご教授下さい。
よろしくお願い致します。
WDMビデオキャプチャフィルタがソースであれば、
その出力ピンからIAMStreamConfig インターフェイスをとりだして、
出力フォーマットを設定する。
詳細は、DirectXの日本語ヘルプを見てください。
hr=ICaptureGraphBuilder2->FindInterface(&PIN_CATEGORY_PREVIEW,
&MEDIATYPE_Video,pCap,
IID_IAMStreamConfig, (void **)&pVSC);
上記のようにしてIAMStreamConfig インターフェイスを取り出し、
AM_MEDIA_TYPE *pmt = NULL;
hr=pVSC->GetFormat(&pmt);
VIDEOINFOHEADER * vh = (VIDEOINFOHEADER*) pmt->pbFormat;
vh->bmiHeader.biWidth =640;
vh->bmiHeader.biHeight=480;
としたところ、出力される静止画の大きさは640*480になりました。
しかし、解像度自体は変化がないようで
vh->bmiHeader.biSize =640*480*3;
vh->bmiHeader.biSizeImage = 640*480*3;
としても変化がありません。今後いろいろ試してみようと
考えています。
お忙しい所有難うございました。
IAMStreamConfig::GetStreamCaps()で取得した値をそのまま
使った方がいいと思います。
お世話になります。
StillCap.exeのサンプルコードが見たくて、このページにたどり付きました。
最新のSDK(October 2006)をダウンロードして見ましたが、DirectShowの
フォルダがありません。
どこかでDirectShow、あるいは、StillCap.exeのSampleコードがダウロード
できますでしょうか?
よろしくお願い致します。
ダンです。
StillCap.exe のサンプルコードは以下の雑誌を購入したら
付属していたCD(DirectX 9.0b SDK)に入っていました。
但し、別の質問です。
XPに入れたVisual6.0(SP5)で以下のエラーがになってしまいます。
LINK : fatal error LNK1104: ファイル "mfc42ud.lib" を開けません。
link.exe の実行エラー
但し、Win2000Serverに入れたVisual6.0(SP5)では、StillCap.exeが
生成され動作も正常です。
XPとWin2000Severの違いでしょうか?
よろしくお願い致します。
ダンです。
度々すみません。
mfc42ud.libがBisualStudioのLIBにありませんでした。
同じVisualStadio6.0(SP6)を入れた積りですが。
Win2000Serverからこれを持ってきてリンクエラーを無くしても、
実行時にmfc42ud.dllも無いから実行もできないと言われます。
少々混乱しております。
XPとWin2000Serverの違いでしょうか?
よろしくお願い致します。
古いスレをあげないで新規質問するべし
MFC Unicode Library がインストールされていないんだよ
VisualStudio6.0 のインストーラで追加インストールするべし
追加インストール後はSP6を当てなおすべし
774さんに同意。新規に聞くべし。
VC6はカスタムで明示的にいれないとudは入らないはず。
インストール時に設定をいじってるか、
誰かが何かの際に入れたか、
UNICODE/DEBUGを使わない設定(マルチバイトかリリース)か、
多分そんなところ。
デバッグ版を無理矢理コピーとかしない方がいいので、
まずそれは消してください。
恐縮です。
次回からは、スレッドを新たにし質問します。
MFC Unicode Library をいれます。
ありがとうございました。
ツイート | ![]() |