Capture Webcam ne fonctionne pas

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Capture Webcam ne fonctionne pas

Message par Ekim »

Bonjours à tous

J'ai un souci avec ce code, il refuse de fonction, je voulais simplement capturer des photos via ma webcam usb

Quelqu'un peut me dire ce qui ne fonctionne pas s'il vous plait?

Code : Tout sélectionner

#WM_CAP_START = #WM_USER

#WM_CAP_SET_CALLBACK_YIELD = #WM_CAP_START + 4
#WM_CAP_SET_CALLBACK_FRAME = #WM_CAP_START + 5
#WM_CAP_SET_CALLBACK_VIDEOSTREAM = #WM_CAP_START + 6
#WM_CAP_SET_CALLBACK_WAVESTREAM = #WM_CAP_START + 7

#WM_CAP_DRIVER_CONNECT        =  #WM_USER + 10
#WM_CAP_DRIVER_DISCONNECT     =  #WM_USER + 11
#WM_CAP_DRIVER_GET_CAPS = #WM_CAP_START + 14

#WM_CAP_DLG_VIDEOFORMAT = #WM_CAP_START + 41
#WM_CAP_DLG_VIDEOSOURCE = #WM_CAP_START + 42
#WM_CAP_DLG_VIDEODISPLAY = #WM_CAP_START + 43

#WM_CAP_SET_PREVIEW = #WM_CAP_START + 50
#WM_CAP_SET_PREVIEWRATE = #WM_CAP_START + 52
#WM_CAP_GET_STATUS = #WM_CAP_START + 54

#WM_CAP_SET_SCALE             =  #WM_USER + 53

#WM_CAP_SET_CALLBACK_CAPCONTROL = #WM_CAP_START + 85

Structure VIDEOHDR
    lpData.l
    dwBufferLength.l
    dwBytesUsed.l
    dwTimeCaptured.l
    dwUser.l
    dwFlags.l
    dwReserved.l[3]
EndStructure


Procedure FrameCallback(lwnd.l, *lpVHdr.VIDEOHDR)

    For k=0 To *lpVHdr\dwBufferLength-1
        Color = PeekB(*lpVHdr\lpData+k)
        
        PokeB(*lpVHdr\lpData+k, RGB(Blue(Color), Green(Color), Red(Color)))
    Next
    
EndProcedure


hWnd = OpenWindow(0, 0, 0, 400, 500, "WebCamTest", #PB_Window_SystemMenu)

If OpenLibrary(0, "AVICAP32.DLL")
    hWebcam = CallFunction(0, "capCreateCaptureWindowA", 0, #WS_VISIBLE + #WS_CHILD, 10, 10, 380, 380, hWnd, 0)

    CallFunction(0, "capSetCallbackOnFrame", hWebcam, @FrameCallback())

    SendMessage_(hWebcam, #WM_CAP_DRIVER_CONNECT          , 0 , 0)
    SendMessage_(hWebcam, #WM_CAP_SET_SCALE               , 1 , 0)
    SendMessage_(hWebcam, #WM_CAP_SET_PREVIEWRATE         , 50, 0)
    SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW             , 1 , 0)

    SendMessage_(hWebcam, #WM_CAP_SET_CALLBACK_FRAME      , 0 , @FrameCallback())

    Repeat
        Event = WindowEvent()
            Select Event
                Case #PB_Event_CloseWindow
                    Quit = 1
            EndSelect
    Until Quit = 1
  
    SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW       , 0, 0)
    SendMessage_(hWebcam, #WM_CAP_DRIVER_DISCONNECT, "BLUBBER", 0)
    CloseWindow(0)
    CloseLibrary(0)
EndIf
Merci pour votre aide :wink:
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Capture Webcam ne fonctionne pas

Message par Ar-S »

Chez moi il fonctionne. Du moins je vois ma tête..
Après faut que tu sauvegardes l'image.. Ce que tu ne fais nul part.
J'ai pas le courage de me plongé dans les API maintenant ni de regarder les commandes d'AVICAP32.DLL..
Ce que tu peux faire, c'est ajouter un raccourcis clavier genre "F3" ou un bouton qui ferait un screenshot de ta fenêtre.
Une fois dans le presse papier à toi d'en faire ce que tu veux

Code : Tout sélectionner

Procedure CapturePic()
;Ar-S
; Capture image fenêtre active.
keybd_event_(#VK_SNAPSHOT,1,0,0) 
keybd_event_(#VK_SNAPSHOT,0,#KEYEVENTF_KEYUP,0)
EndProcedure
---edit---
La commande pour copier l'image de la cam en clipboard c'est

Code : Tout sélectionner

SendMessage_(hWndC, #WM_CAP_EDIT_COPY, 0, 0)
; apres tu récupères en pb
snapshot = GetClipboardImage(#PB_Any)
; Apres tu sauves via saveimage
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Capture Webcam ne fonctionne pas

Message par Ekim »

Trop cool)

Merci @Ar-s pour l'idée du Screenshot, même si j'aurais souhaité récupérer le plein format de la capture, mais c'est quant même une bonne entrée en matière une fois que j'aurais trouvé la panne :D
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Capture Webcam ne fonctionne pas

Message par Ar-S »

la 2ere solution ne capture que l'image ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre