Enregistrer une picturebox

Résolu/Fermé
Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021 - Modifié le 8 sept. 2018 à 23:00
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 19 sept. 2018 à 21:06
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,

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
8 sept. 2018 à 16:14
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
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
8 sept. 2018 à 22:59
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
Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021 4
19 sept. 2018 à 18:35
Merci, j'essaye ça tout de suite...
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
19 sept. 2018 à 21:06
En temps d'exéctution et économie d'accès disque, demander le chemin avant est mieux/
0