Bonjour,

A partir de la webcam du flux vidéo j'enregistre une image dans une picturebox je voudrais maintenant l'enregistrer sur le disque dur.

Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 
Imports DirectX.Capture
Imports System.Threading
 
Public Class frm_config_cam
    Dim NombreDeCapture As Int16
    Dim TimeElapsCapture As Integer
    Dim StartTime As Date
 
    Private Sub frm_config_cam_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Short
        Dim j As Filter
 
        'listage des peripheriques video installés sur la machine
        cb_select_cam.Items.Clear()
        For i = 0 To Dispositivos.VideoInputDevices.Count - 1
            j = Dispositivos.VideoInputDevices(i)
            cb_select_cam.Items.Add(j.Name)
        Next
        'par défaut
        If i > 0 Then cb_select_cam.SelectedIndex = 0
 
 
        'listage des peripheriques audio installés sur la machine
        cb_select_hp.Items.Clear()
        For i = 0 To Dispositivos.AudioInputDevices.Count - 1
            j = Dispositivos.AudioInputDevices(i)
            cb_select_hp.Items.Add(j.Name)
        Next
        If i > 0 Then cb_select_hp.SelectedIndex = 0
 
 
    End Sub
 
    Private Sub Configurer()
        'configurations avancées
        'configuration du systeme de compression video et audio
        CaptureInformation2.CaptureInfo.VideoCompressor = Dispositivos.VideoCompressors(1) 'compression video
        'taille de la video
        CaptureInformation2.CaptureInfo.FrameSize = New Size(320, 240) 'taille de la video
        'FPS de la video
        CaptureInformation2.CaptureInfo.FrameRate = 50 'FPS
        'fichier .avi
        ''CaptureInformation.CaptureInfo.Filename = Application.StartupPath + "\essai.avi"
        'lancement du streaming d'affichage
 
        CaptureInformation2.CaptureInfo.RenderPreview()
 
 
    End Sub
    Private Sub NewCaptureReady(ByVal Sender As System.Windows.Forms.PictureBox)
        'appele par le gestionnaire de handler sur l'evennement "FrameCapture
        'ma picture capturé est arrivée...
        Dim la As PictureBox = CType(Sender, PictureBox) 'la je converti mon picturebox en picturebox...je sais pas pourquoi, fo le faire sinom ca marche pas
 
        '' histoire de savoir combien ca prends de temps de faire une capture.
        Dim RunLength As System.TimeSpan = Now.Subtract(StartTime)
        Dim TimeElapsCapture As Integer = RunLength.Milliseconds
 
        NombreDeCapture = NombreDeCapture + 1
        pic_photo.Image = la.Image 'j affecte ma capture d'image a mon picturebox qui attend que ca.
 
    End Sub
 
    Private Sub tsb_config_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsb_video_webcam.Click
        'pre configuration du capturing
        'definission de la camera
        CaptureInformation2.Camera = Dispositivos.VideoInputDevices(cb_select_cam.SelectedIndex)
        'mise en place du stream video et audio
        CaptureInformation2.CaptureInfo = New DirectX.Capture.Capture(CaptureInformation2.Camera, Dispositivos.AudioInputDevices(cb_select_hp.SelectedIndex))
        'renseignement du panneau d'affichage de la video
        CaptureInformation2.CaptureInfo.PreviewWindow = pic_camera
        'compteur pour les capture d'image (frame video)
        CaptureInformation2.Counter = 1
        CaptureInformation2.CounterFrames = 1
        'configurations avancées
        Configurer()
        'pour la gestion evennementiel de la capture d'ecran je cree un gestionnaire d evennement sur Framecapturecomplete
        AddHandler CaptureInformation2.CaptureInfo.FrameCaptureComplete, AddressOf NewCaptureReady
    End Sub
 
    Private Sub tsb_quitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsb_quitter.Click
        Me.Close()
    End Sub
 
    Private Sub tsb_photo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsb_photo.Click
        'demande une capture DirectX ...et lorsqu'elle est ready je la recoit par le Handler cree un peut plus haut
        Dim StartTime As String = Now    ' Starting date/time.
        CaptureInformation2.CaptureInfo.CaptureFrame()
    End Sub
End Class
Une fois que la picturebox reçois l'image:

pic_photo.Image = la.Image 'j affecte ma capture d'image a mon picturebox qui attend que ca.

Je voudrais la sauvée j'ai essayé avec pic_photo.Image.Save("Lechemin")

Je sais enregistré l'image mais a partir d'une boite de dialogue:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
pic = pic_photo.Image
        SaveFileDialog.ShowDialog()
        pic.Save(SaveFileDialog.FileName)
Je voudrais l'enregistré sans boite de dialogues en mettant le chemin du répertoire
Si quelle qu'un a de la doc ou une solution merci d'avance