Enregistrer une picturebox

Résolu
Alvin1614 Messages postés 115 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

Je suis en train de réaliser un logiciel de captures d'écran et d'enregistrement vidéo de l'écran. Seulement, je suis bloqué à l'enregistrement de ma capture d'écran :

Public Class Form1


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        
        Me.WindowState = System.Windows.Forms.FormWindowState.Minimized

        Dim bounds As Rectangle = Screen.PrimaryScreen.Bounds

        Dim bmp As New Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb) 'nouveau bitmap au dimansion de l'écran 

        Dim g As Graphics = Graphics.FromImage(bmp)

        g.CopyFromScreen(bounds.Left, bounds.Top, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)


        bmp.Save(
        "C:\Windows\Temp\imagescreencapture.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg)
        PictureBox1.ImageLocation = "C:\Windows\Temp\imagescreencapture.jpeg"
        SaveFileDialog1.Filter = "Jpeg (*.jpeg*)|*.jpeg"
        If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _
         Then
            My.Computer.FileSystem.WriteAllText _
            (SaveFileDialog1.FileName, PictureBox1.image, True)
        End If

    End Sub

End Class

En gros, quand on appuie sur le Button1, Form1 se réduit, et le logiciel prend une capture d'écran. La capture est enregistrée dans les Temp et affichée dans la PictureBox. Un SaveFileDialog s'ouvre et quand on appuie sur enregistrer, il enregistre la PictureBox. C'est là que se trouve mon problème, je ne sais pas comment enregistrer la PicureBox.

Par ailleurs, si vous pouviez m'indiquer la manière de créer un enregistrement vidéo de l'écran, je vous en serai très reconnaissant.

Merci d'avance,

Alvin1614

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    bonjour,

    Pour une capture d'écran voir ceci:

    https://codes-sources.commentcamarche.net/source/101092-screenshot-avec-rectangle-de-selection

    pour ton code:

     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Me.WindowState = System.Windows.Forms.FormWindowState.Minimized
            Dim bounds As Rectangle = Screen.PrimaryScreen.Bounds
            Dim bmp As New Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb) 'nouveau bitmap au dimansion de l'écran 
            Dim g As Graphics = Graphics.FromImage(bmp)
            g.CopyFromScreen(bounds.Left, bounds.Top, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)
            PictureBox1.Image = bmp
            SaveFileDialog1.Filter = "Jpeg (*.jpeg*)|*.jpeg"
            If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                PictureBox1.Image.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
            End If
        End Sub


    Voilà
    0
  2. Utilisateur anonyme
     
    Bonsoir
    En faisant comme tu decris, tu vas avoir 2 enregistrements, un dans les temp et un dans le répertoire choisi par l’utilisateur.
    Pourquoi ne pas demander le chemin avant? Ou alors déplacer le fichier de temp vers chemin choisi ?
    0
    1. Alvin1614 Messages postés 115 Statut Membre 4
       
      Merci, j'essaye ça tout de suite...
      0
    2. Utilisateur anonyme
       
      En temps d'exéctution et économie d'accès disque, demander le chemin avant est mieux/
      0