Maison >développement back-end >C++ >Comment puis-je valider les fichiers image en C# avant de les charger pour éviter les exceptions OutOfMemoryExceptions ?
Vérification de la validité de l'image en C#
Lors de l'utilisation de la méthode Image.FromFile() pour récupérer une image à partir d'un fichier , un problème potentiel survient lorsque le fichier fourni ne correspond pas au format d'image spécifié. Par exemple, attribuer à un fichier texte vide le nom « image.jpg » peut déclencher une exception OutOfMemory lors du chargement de Image.FromFile(). Pour résoudre ce problème, un mécanisme est nécessaire pour valider une image en fonction d'un flux ou d'un chemin de fichier donné.
Validation du flux :
La fonction IsValidImage( Stream imageStream) valide une image à l'aide d'un flux. Pour y parvenir :
Chemin du fichier Validation :
Semblable à la validation de flux, IsValidImage(string fileName) peut être implémenté à l'aide de chemins de fichiers. L'approche est analogue à la validation de flux, à l'exception de la lecture des octets directement à partir du fichier plutôt que d'un flux.
Détection de format d'image personnalisé :
Pour les scénarios avancés où les extensions de fichiers ne sont pas fiables, un mécanisme de détection de format d'image personnalisé peut être implémenté. Une de ces approches consiste à examiner les octets de l'image :
public enum ImageFormat { bmp, jpeg, gif, tiff, png, unknown } public static ImageFormat GetImageFormat(byte[] bytes) { // Check bytes against image header signatures // ... return ImageFormat; }
En utilisant cette fonction, les images peuvent être validées avant qu'elles ne soient complètement chargées en mémoire, atténuant ainsi les exceptions potentielles lors de Image.FromFile() chargement.
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!