Bonjour à tous
Dans un programme que j'ai fait pour traiter des images, je les affiche dans deux pictureBox, pbDroite et pbGauche.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
    Private Sub AffichePhoto(ByVal Fic As String)
        MaPhoto1 = New System.Drawing.Bitmap(Fic)
        MaPhoto2 = MaPhoto1
        HP = MaPhoto1.Height
        LP = MaPhoto1.Width
        pbDroite.Image = MaPhoto1
        pbGauche.Image = MaPhoto2
        .............
Après traitement de mon image dans pbDroite, je la sauvegarde avec les instructions suivantes :

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
    Sub Enregistrer()
        ' Affiche un SaveFileDialog afin que l'utilisateur puisse sauvegarder  l'Image retouchée
        Dim saveFileDialog1 As New SaveFileDialog()
        saveFileDialog1.Filter = "JPeg Image|*.jpg"
        saveFileDialog1.Title = "Enregistre un fichier Image"
        saveFileDialog1.InitialDirectory = Dossier
        saveFileDialog1.ShowDialog()
 
        'Si le nom du fichier n'est pas une chaîne vide, l'ouvre pour l'enregistrement
        If saveFileDialog1.FileName <> "" Then
            'Enregistre l'image via un "FileStream" créé par la méthode OpenFile
            Dim fs As System.IO.FileStream = CType(saveFileDialog1.OpenFile(), System.IO.FileStream)
            Me.pbDroite.Image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg)
            fs.Close()
        End If
    End Sub
Si je ne change pas le nom du fichier dans saveFileDialog1, il me demande si je veux écraser le fichier existant, je répond OUI + OK, mais le programme plante sur la ligne
Dim fs As System.IO.FileStream = CType(saveFileDialog1.OpenFile(), System.IO.FileStream)en signalant ce qui suit :
Le processus ne peut accèder au fichier car il est en cours d'utilisation par un autre processus.
Quelqu'un sait-il comment faire ?
Merci de votre réponse.

Claude Azoulai