Maison > développement back-end > C++ > Pourquoi la conversion d'un JPEG en un MemoryStream lance-t-elle une «erreur générique s'est-elle produite dans l'exception GDI»?

Pourquoi la conversion d'un JPEG en un MemoryStream lance-t-elle une «erreur générique s'est-elle produite dans l'exception GDI»?

Barbara Streisand
Libérer: 2025-01-26 15:31:09
original
259 Les gens l'ont consulté

Why Does Converting a JPEG to a MemoryStream Throw a

Erreur GDI lors de la conversion JPEG en MemoryStream

Problème :

La conversion d'images JPEG en flux de mémoire à l'aide de ConvertImageToByteArray (ou de méthodes similaires) entraîne une erreur GDI générique :

<code>System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.</code>
Copier après la connexion

Ce problème affecte uniquement les fichiers JPEG ; Les conversions PNG fonctionnent sans problème.

Cause fondamentale :

L'erreur provient de la fermeture prématurée du flux mémoire utilisé pour créer l'objet image avant d'enregistrer l'image.

Résolution :

La solution est de garder le flux mémoire ouvert tout au long du processus de sauvegarde de l'image :

<code class="language-csharp">using (var m = new MemoryStream())
{
    dst.Save(m, format);
    // ... other code ...
    return Image.FromStream(m); // MemoryStream remains open until the end of the using block
}</code>
Copier après la connexion

Remarques supplémentaires :

L'utilisation d'un flux mémoire est cruciale pour préserver le type MIME de l'image. Sans cela, le type MIME de l'image de sortie n'est pas défini, ce qui complique la gestion générique des erreurs.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal