OVH Cloud OVH Cloud

picturebox et fichier

2 réponses
Avatar
Sylvain MALLEVAL
Salut,

J'utilise un PictureBox pour afficher une image à partir d'un fichier dans
une form.

Quand j'ouvre la form une premiere fois, tout est ok. Je ferme la forme.
Puis je demande à la réouvrir et la j'ai un problème car je ne peut plus
accéder au fichier (j'essaye de l'écraser pour en créer un nouveau avec
filecopy).

Pour remplir ma picture box, je fait
pictbox.image=image.fromfile("monfichier").

Comment faire pour libérer le fichier ???

Merci

Sylvain.

2 réponses

Avatar
David Scime
Sylvain MALLEVAL a écrit :
Salut,

J'utilise un PictureBox pour afficher une image à partir d'un fichier dans
une form.

Quand j'ouvre la form une premiere fois, tout est ok. Je ferme la forme.
Puis je demande à la réouvrir et la j'ai un problème car je ne peut plus
accéder au fichier (j'essaye de l'écraser pour en créer un nouveau avec
filecopy).

Pour remplir ma picture box, je fait
pictbox.image=image.fromfile("monfichier").

Comment faire pour libérer le fichier ???

Merci

Sylvain.




Bonjour,

Extrait de la doc du framework:

Image.FromFile, méthode (String) [Visual Basic]

..
..
...

Notes
Le fichier reste verrouillé tant que l'objet Image n'a pas été supprimé.

..
..
...

Regarde peut-être de ce côté là..

Bien à toi

David Scime
Avatar
Remi Thomas - MVP
"David Scime" écrivit
Sylvain MALLEVAL a écrit :
Salut,

J'utilise un PictureBox pour afficher une image à partir d'un fichier
dans une form.

Quand j'ouvre la form une premiere fois, tout est ok. Je ferme la forme.
Puis je demande à la réouvrir et la j'ai un problème car je ne peut plus
accéder au fichier (j'essaye de l'écraser pour en créer un nouveau avec
filecopy).

Pour remplir ma picture box, je fait
pictbox.image=image.fromfile("monfichier").

Comment faire pour libérer le fichier ???

Merci

Sylvain.




Bonjour,

Extrait de la doc du framework:

Image.FromFile, méthode (String) [Visual Basic]

Notes
Le fichier reste verrouillé tant que l'objet Image n'a pas été supprimé.





C'est bien le probléme.
Il faut appeler pictbox.image.dispose() pour tout libérer.
Cela fonctionne ainsi car GDI+ dans son format d'origine.
Donc à chaque redraw le JPEG ou le GIF est décompréssé. Pour rendre une
application plus rapide il ne faut pas hésiter à copier l'image.
Bitmap copyBitmap = new Bitmap(new Bitmap("fichier.jpg"));

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv