Problème :
Lors de l'enregistrement d'une image à l'aide d'Image .Save(...) avec un flux mémoire, les développeurs peuvent rencontrer une exception GDI si le flux mémoire est fermé avant l'enregistrement. Cependant, dans les scénarios de création d'images dynamiques, la fermeture du flux avant l'enregistrement est nécessaire.
Scénario de code :
Bitmap image2; using (Stream originalBinaryDataStream2 = new MemoryStream(data)) { image2 = new Bitmap(originalBinaryDataStream2); }
Dans ce scénario, le flux mémoire originalBinaryDataStream2 est fermé en quittant le bloc using. Par la suite, l'enregistrement de l'image image2 provoque l'exception GDI.
Solution :
Les flux mémoire ne nécessitant pas de fermeture explicite, il n'est pas nécessaire de les fermer manuellement. Cependant, la fermeture de l'objet Bitmap fermera automatiquement le flux mémoire associé.
Bitmap image2; using (Stream originalBinaryDataStream2 = new MemoryStream(data)) { image2 = new Bitmap(originalBinaryDataStream2); } image2.Dispose(); // Also closes the memory stream
En supprimant le Bitmap, le flux mémoire est fermé correctement, garantissant que l'image peut être enregistrée sans exception.
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!