Page 1 sur 2

WebCamShot

Publié : jeu. 17/avr./2008 0:07
par Droopy
Capture une image à partir d'une webcam et l'enregistre en jpg (avec date et heure)

Basé sur les code de je sais plus

Code : Tout sélectionner

;/ Infos sur MSDN : http://msdn2.microsoft.com/en-us/library/ms713822(VS.85).aspx

#largeur=640
#Hauteur=480

OpenLibrary(0,"avicap32.dll") 
hWndC = CallFunction(0,"capCreateCaptureWindowA", "My Capture Window",#WS_CHILD,10,10,#largeur,#Hauteur,FindWindow_(0,0),1) ; Handle du bureau
SendMessage_(hWndC, #WM_CAP_DRIVER_CONNECT,0,0) 

;/ Récupère la résolution de capture courante
Image.BITMAPINFO
SendMessage_(hWndC,#WM_CAP_GET_VIDEOFORMAT,SizeOf(BITMAPINFO),Image)
Debug Image\bmiHeader\biWidth
Debug Image\bmiHeader\biHeight
   
;/ Change la résolution de capture
Image\bmiHeader\biWidth=#largeur
Image\bmiHeader\biHeight=#Hauteur
SendMessage_(hWndC,#WM_CAP_SET_VIDEOFORMAT,SizeOf(BITMAPINFO),Image) 
   
;/ Copie l'image dans le presse papier
SendMessage_(hWndC, #WM_CAP_EDIT_COPY,#Null,#Null )

;/ Stoppe la capture
SendMessage_(hWndC,#WM_CAP_STOP,0,0) 
SendMessage_(hWndC,#WM_CAP_DRIVER_DISCONNECT,0,0) 
DestroyWindow_(hWndC) 
CloseLibrary(0)

;/ Copie l'image du presse papier dans un fichier
GetClipboardImage(0,24)
UseJPEGImageEncoder()
SaveImage(0,GetPathPart(ProgramFilename())+FormatDate("%dd-%mm-%yy %hhh%ii",Date())+".jpg",#PB_ImagePlugin_JPEG)

Publié : jeu. 17/avr./2008 9:21
par Ar-S
tout simplement excellent !
Merci Droopy

Publié : jeu. 17/avr./2008 10:36
par Droopy
ça fonctionne sous vista mais sous XP la webcam n'étant pas initialisée, on capture une image verte.
Quelqu'un aurais une idée pour résoudre cela ?

Publié : jeu. 17/avr./2008 10:48
par lionel_om
Droopy a écrit :ça fonctionne sous vista mais sous XP la webcam n'étant pas initialisée, on capture une image verte.
Quelqu'un aurais une idée pour résoudre cela ?
Non, chez moi ca marche (XP Media center SP2)

Lio

Publié : jeu. 17/avr./2008 11:26
par Progi1984
Connaissez vous ma userlib RCam pour gérer facilement les webcams ?

Publié : jeu. 17/avr./2008 19:56
par Ar-S
Droopy a écrit :ça fonctionne sous vista mais sous XP la webcam n'étant pas initialisée, on capture une image verte.
Quelqu'un aurais une idée pour résoudre cela ?
Pareil pour moi sous XP Sp2 pas de probleme

@Progi1984
Je vais voir cette lib de suite :D

---Edit----

Pour RCam Les exemples commencent par

Code : Tout sélectionner

IncludeFile "RCam_Res.pb"
IncludeFile "RCam_Inc.pb"
Or ces 2 fichiers ne sont pas dans le zip... :?

Publié : ven. 18/avr./2008 7:26
par Progi1984
Ar-S a écrit : Pour RCam Les exemples commencent par

Code : Tout sélectionner

IncludeFile "RCam_Res.pb"
IncludeFile "RCam_Inc.pb"
Or ces 2 fichiers ne sont pas dans le zip... :?
Oops supprime ces deux lignes... ce sont en fait les codes sources :S

Publié : ven. 18/avr./2008 21:34
par Ar-S
Hum... maintenant il me sort que RCam_Init() is not a function...
pourtant j'ai bien copier les fichiers libs et Res ou il fallait.. :cry:

Publié : sam. 19/avr./2008 10:23
par Progi1984
Commente-le !!!!

Attends, je vais mettre le package à jour ! Vraiment dsl !

Publié : sam. 19/avr./2008 10:31
par Backup
..............................

Publié : sam. 19/avr./2008 10:38
par Ar-S
en commentant

RCam_SetAudioCapture(WebCam)
RCam_EnablePreviewMode(WebCam, #True)
RCam_Init()
RCam_End()

ça fonctionne..

Vaut en effet mieux que tu refasses le package "propre", ce sera plus pratique. :)

Publié : sam. 19/avr./2008 12:46
par wolfjeremy
Aucun de vos code ne marche :?

Celui de Droopy me ressort sans cesse exactement la même image...
Et celui de Progi1984 est sans aucunes aide, et les exemples ne marche pas :?

Publié : sam. 19/avr./2008 13:15
par Backup
wolfjeremy a écrit :Aucun de vos code ne marche :?

Celui de Droopy me ressort sans cesse exactement la même image...
Et celui de Progi1984 est sans aucunes aide, et les exemples ne marche pas :?
et le code en couleur ??? chez moi il marche !! et sans Lib !!

Publié : sam. 19/avr./2008 15:45
par wolfjeremy
Même chose qu'avec celui de Droopy, j'ai tout le temps la même image qui ressort... c'est sur le pc de mon frère sous vista, car sur le mien je n'ai pas de webcam (j'ai horreur de ça)
Mais je pense que je vais en prendre une pour faire mumuse avec PureBasic.

Publié : sam. 19/avr./2008 17:24
par Backup
wolfjeremy a écrit :Aucun de vos code ne marche :?

Celui de Droopy me ressort sans cesse exactement la même image...
Et celui de Progi1984 est sans aucunes aide, et les exemples ne marche pas :?
ta essaye de Decomenter les lignes 57 a 61 ??

ces lignes la

Code : Tout sélectionner

; ;............................................(pour afficher l'option)
             ; #WM_CAP_START = #WM_USER
             ; #WM_CAP_DLG_VIDEOSOURCE = #WM_CAP_START + 42
             ; ;............................................
             ; SendMessage_(hWndC, #WM_CAP_DLG_VIDEOSOURCE, 0, 0) 
cela fait afficher une boite de dialogue pour choisir le bon peripherique !! :)