Une erreur générique s’est produite dans GDI + dans la méthode Image.Save ()

J’essaie d’utiliser cette classe, mais une erreur générique s’est produite dans GDI + dans la méthode Image.Save (). D’après ce que j’ai lu, il faut fermer certains stream, mais je ne sais pas lequel.

I'm calling using this: Image image = Image.FromFile(@"C:\a.jpg"); using (var resized = ImageUtilities.ResizeImage(image, 50, 100)) { //save the resized image as a jpeg with a quality of 90 ImageUtilities.SaveJpeg(@"C:\myimage.jpeg", resized, 90); } 

Pourquoi cette erreur et comment résoudre ce problème?

À moins que votre programme ne soit exécuté en tant qu’administrateur, vous ne pouvez pas enregistrer directement à la racine de C: créer un dossier et le sauvegarder à la place.

Avez-vous testé l’enregistrement des images dans différents endroits?

S’il échoue toujours alors, sans savoir exactement ce qui se passe dans votre code, je me risquerais à dire que l’image originale est supprimée quelque part avant qu’elle ne le soit. C’est généralement la cause la plus courante de l’erreur.

J’ai écrit une bibliothèque qui gère de nombreuses opérations de création d’image tout en veillant à ce que la mémoire soit correctement gérée. C’est bien testé et très simple à utiliser.

Vous pouvez l’avoir ici. http://imageprocessor.org/

Exemple de code utilisant la bibliothèque:

 using (ImageFactory imageFactory = new ImageFactory()) { // Load, resize, set the quality and save an image. imageFactory.Load(@"C:\a.jpg") .Resize(new Size(50, 100)) .Quality(90) .Save(@"C:\myimage.jpeg); }