marco1 (Normal User)
Pro
Messaggi: 157
Iscritto: 12/02/2009
|
Questo topic è stato chiuso dal moderatore Salve, a me mi servirebbe il vostro utilissimo aiuto per risolvere un probleme che non e proprio da poco (almeno per me). Io avrei bisognio di far apparire in un picturebox l'immagine diuna Webcam (USB). Come inserire l'immagine lo so fare, ma come ricevere i dati con VB6 non saprei proprio!. Potete aiutarmi?
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
metti una picturebox(chiamala picture1) nel progetto e...
in un modulo:
Codice sorgente - presumibilmente VB.NET |
Global Const ws_child As Long = &H40000000 Global Const ws_visible As Long = &H10000000 Global Const WM_USER = 1024 Global Const wm_cap_driver_connect = WM_USER + 10 Global Const wm_cap_set_preview = WM_USER + 50 Global Const WM_CAP_SET_PREVIEWRATE = WM_USER + 52 Global Const WM_CAP_DRIVER_DISCONNECT As Long = WM_USER + 11 Global Const WM_CAP_DLG_VIDEOFORMAT As Long = WM_USER + 41 Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal a As String, ByVal b As Long, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByVal f As Integer, ByVal g As Long, ByVal h As Integer) As Long
|
Nel form inserisic queste sub:
Codice sorgente - presumibilmente VB.NET |
Dim hwdc As Long Dim startcap As Boolean Private Sub Apri() 'Apre Dim temp As Long hwdc = capCreateCaptureWindow("Dixanta Vision System", ws_child Or ws_visible, 0, 0, 320, 240, Picture1.hWnd, 0) If (hwdc <> 0) Then temp = SendMessage(hwdc, wm_cap_driver_connect, 0, 0) temp = SendMessage(hwdc, wm_cap_set_preview, 1, 0) temp = SendMessage(hwdc, WM_CAP_SET_PREVIEWRATE, 30, 0) startcap = True Else MsgBox ("No Webcam found") End If End Sub Private Sub Chiudi() 'chiude Dim temp As Long If startcap = True Then temp = SendMessage(hwdc, WM_CAP_DRIVER_DISCONNECT, 0&, 0&) startcap = False End If End Sub Private Sub VideoFormat() 'formato video Dim temp As Long If startcap = True Then temp = SendMessage(hwdc, WM_CAP_DLG_VIDEOFORMAT, 0&, 0&) End If End Sub
|
Per far apparire l'immagine catturata basta che richiami la sub Apri |
|
marco1 (Normal User)
Pro
Messaggi: 157
Iscritto: 12/02/2009
|
Io ho la Webcam (USB) connessa. E ho compilato il programma come mi avete detto. Ma nella Picture si presenta solo un rettangolo nero; Puoi essere la Webcam che non funziona bene?
|
|
ruggy94 (Member)
Guru
Messaggi: 890
Iscritto: 21/04/2008
|
per vedere se la webcam funziona ti conviene provarla con dei programmi sicuramente funzionanti...tipo la videochiamata di msn o skype oppure (se c'è) con il programma che ti viene dato insieme alla webcam
|
|
marco1 (Normal User)
Pro
Messaggi: 157
Iscritto: 12/02/2009
|
Else
MsgBox ("No Webcam found")
End If
leggendo questo ho capito che se la Webcam non e conessa mi dovrebbe avertire; e invece, anche con la vebcam sconessa, mi disegna il rettangolo nero!Forse il rettangolo nero non e neanche l'immagine della Webcam!?
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Il codice funziona regolarmente.
Il messaggio non e' corretto ... se quella API fallisce non e' perche' non c'e' la webcam ma per altri motivi.
|
|
marco1 (Normal User)
Pro
Messaggi: 157
Iscritto: 12/02/2009
|
OK! grazie del informazione, penyandoci sara la Webcam che non funziona. Passero l'exe a un amicho! E si vedra.
Pero un altra cosa mi turba!:
Perche alla picture che ho aplicato il codice il comando ".Cls" (per pulirla) non fa alcun efetto?
Forse la libreria ripete l' inmagine sequenzialmente restituendomi gia il filmato? (e quindi rinnova la foto subito doo la pulitura?)
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
E' normale ...
|
|