Bonjour,
Débutant en C# je me suis lancé dans une application WPF sous windows 7 avec VSExpress 2010.
J'ai mis une image à l'intérieur d'un canvas afin d'y dessiner dessus et d'enregistrer l'image modifiée.
Le problème vient lorsque j'essai de sauvegarder sur le même fichier cela me dis :Pourtant j'ai fais un clear sur le canvas mais cela ne doit pas être suffisant :sLa ressource est en cours d'utilisation.
Je ne vois aucune fonction dispose ou close sur mon objet image donc je ne sais pas quoi faire d'autre pour libérer cette image afin de l'écraser avec le fichier temporaire.
Merci de votre aide.
Ci dessous mon 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 Code C# : string fichierOriginal; // contient le chemin de mon fichier original InkCanvas canvasPlan; // inkcanvas ... //affectation de l'image dans le canvas Image imageCanvas = new Image(); imageCanvas.Source = new BitmapImage(new Uri(fichierOriginal, UriKind.RelativeOrAbsolute)); canvasPlan.Children.Add(imageCanvas); //sauvegarde apres modifications string fichierJpg= @"c:\temp\canvasPlan.jpg"; //fichier temporaire ExportToJpeg(fichierJpg, canvasPlan); //vide le canvas /*foreach (Image uneImage in canvasPlan.Children.OfType<Image>()) { uneImage.Source = new BitmapImage(); // j'ai essayé d'enlever la source mais ca ne change rien }*/ canvasPlan.Children.Clear(); //supprime les objets a l'intérieur du canvas canvasPlan.Strokes.Clear(); //supprime les traits de stylet //essai d'ecraser le fichier original avec la modif File.Copy(fichierJpg, fichierOriginal, true); //BUG ici : ressource non disponible : fichierOriginal
Partager