HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0426
hsp2年生USBカメラのプロパティー8未解決


hsp2年生

リンク

2007/4/26(Thu) 12:21:50|NO.7759

USBカメラの出力サイズやフレーム率を設定するストリーム形式のプロパティーを起動するには
どうしたら良いのですか?
また複数のキャプチャーディバイスから1つを選択するダイアログを表示するにはどうしたら良
いのですか?
合わせてよろしくお願いします。



この記事に返信する


HSP2年生

リンク

2007/5/6(Sun) 17:30:00|NO.8090

誰からも返答ないので質問のかたちをかえます。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdlgvideoformat.asp

MSDNの↑によると以下のAPIを実行るとビデオフォーマットダイアログを表示できるようなのですが
どのようにしてHSPから呼び出したら良いのか分りませんWINAPIに強い方宜しくお願い致します。

BOOL capDlgVideoFormat(
hwnd );

Parameters
hwnd Handle to a capture window.



Kpan

リンク

2007/5/6(Sun) 20:31:19|NO.8091

その方面の情報は皆無なので、あくまでそのページを見た限りでの話
ですが、本来呼ぶべきメッセージは「WM_CAP_DLG_VIDEOFORMAT」です。
「capCreateCaptureWindow」関数で作成したキャプチャウィンドウに
そのメッセージを送る形?

http://www.codeproject.com/useritems/webcamcapture.asp



りさ

リンク

2007/5/6(Sun) 21:58:57|NO.8096

こんにちわ、りさです。

>その方面の情報は皆無なので、あくまでそのページを見た限りでの話

あたしも全く知らないし、「USBカメラって何?」っていう感じなんですが、
ちょっと調べてみました。

>capCreateCaptureWindow関数で作成したキャプチャウィンドウに
>そのメッセージを送る形?

なのであれば、

#define WM_CAP_DLG_VIDEOFORMAT 0x00000429 #uselib "VFW32.dll" #cfunc capCreateCaptureWindow "capCreateCaptureWindowA" sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr nWnd = "WindowName" hCWnd = capCreateCaptureWindow( varptr(nWnd), WS_XXXXX, 0, 0, 320, 480, hWnd, id ) SendMsg hCWnd, WM_CAP_DLG_VIDEOFORMAT, 0, 0

みたいな感じだと思うのですが・・・動作はしません。

仰っておられるcapDlgVideoFormatですが、これはVFW.hというヘッダ内で

#define capDlgVideoFormat(hwnd) ((BOOL)AVICapSM(hwnd, WM_CAP_DLG_VIDEOFORMAT, 0, 0L))
と定義されているだけのマクロだと思います。
あと、このAVICapSMですが、これは同じくVFW.h内で、

#define AVICapSM(hwnd,m,w,l) ( (IsWindow(hwnd)) ? ::SendMessage(hwnd,m,w,l) : 0)
と定義されていました。

それらを考えたら上のようなスクリプトになったので、それだけご報告致します。
(完全に見当外れの予感がするので、参考にはならないかと思います)

失礼しました。



HSP2年生

リンク

2007/5/7(Mon) 21:00:13|NO.8118

皆さん情報ありがとうございます。

VFW32.dllはVideo for WindowのDLLでWinXP環境では見つかりませんね。ちなみにDirectShow
のAPIでは
DsUtils.ShowCapPinDialog(captureGraphBuilder, captureFilter, this.Handle);
らしいですですが余計難しく、また何のDLLを使ったら良いのか分かりません。

さらにHSP3.1β8から同梱のHSPCVのOpenCV↓では
http://robotics.elec.nara-k.ac.jp/opencv/cvcam.rtf#_Toc517241053

cvcamGetProperty(int camera, const char* property, void* value);
で同様のDIALOGを開けるらしいのですが定義ファイルの書き方も???です
int camera:cameraID? 最初に見つかったカメラは0かな?
const char* property:CVCAM_VIDEOFORMATと指定すればOK?
void* value:NULL ←これはどうするの?

DLLは新たに自分で作らなければいけないのですか?

どのAPIを使ってでも実現したいのですが....
これが出来るとHSPでWEBカメラを使ったアプリケーションの範囲が大幅に広がります。



Kpan

リンク

2007/5/7(Mon) 21:06:04|NO.8119

capCreateCaptureWindow関数は、「avicap32.dll」です。



a

リンク

2007/5/7(Mon) 21:14:28|NO.8121

人に聞いてでも今すぐ実現させたい?
1年後の実現でもいいから自分でいろいろ探したい?



りさ

リンク

2007/5/7(Mon) 22:17:32|NO.8127

>capCreateCaptureWindow関数は、「avicap32.dll」です
堯福陰◆院
その通りかもしれません、すみません。
色々探していたら、ごちゃごちゃになってしまいました。

探せば探すほど混乱してきて、
>そして、vfw32.dllが無いので、avicap32.dllを、vfw32.dllという名前でコピーしておく
という文を見つけたときにはさっぱりになりました(涙
(似てるものなんでしょうか?)

ところで、DLL名を変え上のスクリを実行すると、

#uselib "avicap32.dll" #cfunc capCreateCaptureWindow "capCreateCaptureWindowA" (略) #define WM_CAP_DLG_VIDEOFORMAT 0x00000429 #define WS_CHILD 0x40000000 #define WS_VISIBLE 0x10000000 hCWnd = capCreateCaptureWindow( "WindowName", WS_CHILD|WS_VISIBLE, (略) SendMsg hCWnd, WM_CAP_DLG_VIDEOFORMAT, 0, 0
NULL以外が返ってきているので、
ハンドルを取得出来ていると思うのですが、どうでしょうか?

あと、もう関係ないですが、vfw32.dllはヘッダとソース付きで見つけました。
http://www.eqchem.s.u-tokyo.ac.jp/~fumi/workshop/lavbiew_tools/usb_camera/usb_camera.html

お力になれず申し訳ありませんでした。



f

リンク

2007/7/7(Sat) 02:36:36|NO.9343

age



ONION software Copyright 1997-2021(c) All rights reserved.