Enregistrer une picturebox

Résolu
Alvin1614 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   -  
 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,

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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
Alvin1614 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci, j'essaye ça tout de suite...
0
Utilisateur anonyme
 
En temps d'exéctution et économie d'accès disque, demander le chemin avant est mieux/
0