Résoudre l'exception de verrouillage de fichier dans l'attribution d'image PictureBox
Lors de l'attribution d'une image à une PictureBox au moment de l'exécution, les développeurs peuvent rencontrer une erreur indiquant que le fichier est verrouillé par un autre processus. Cela se produit lorsque le fichier est déjà utilisé par un objet Image ou Bitmap. Pour résoudre ce problème, il existe deux manières principales de déverrouiller des fichiers.
Utiliser les flux de mémoire
L'approche recommandée consiste à charger les données d'image dans un flux mémoire et à créer un objet Image à partir du flux. Cette méthode libère le verrouillage du fichier et permet un traitement ultérieur de l'image :
<code class="language-c#">public static Image FromFile(string path) { byte[] bytes = File.ReadAllBytes(path); using (MemoryStream ms = new MemoryStream(bytes)) { return Image.FromStream(ms); } }</code>
Copier depuis Bitmap
Une autre approche consiste à créer une copie de l'objet Bitmap représentant l'image et à l'attribuer à PictureBox. Cette méthode implique une consommation de mémoire supplémentaire mais préserve le verrouillage du fichier d'origine :
<code class="language-c#">Image imgCopy = new Bitmap(filePath); pbAvatar.Image = imgCopy;</code>
Les tests de performances montrent que le chargement d'images à partir de Bytes est beaucoup plus rapide que la copie à partir de Bitmap. Cependant, si vous avez spécifiquement besoin de l'objet Bitmap, vous pouvez utiliser la méthode de copie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!