Heim > Backend-Entwicklung > C++ > Warum wirft das Konvertieren eines JPEG in einen MemoryStream einen 'generischen Fehler in der GDI' -Ausnahme aus?

Warum wirft das Konvertieren eines JPEG in einen MemoryStream einen 'generischen Fehler in der GDI' -Ausnahme aus?

Barbara Streisand
Freigeben: 2025-01-26 15:31:09
Original
282 Leute haben es durchsucht

Why Does Converting a JPEG to a MemoryStream Throw a

GDI -Fehler während des JPEG -zu MemoryStream -Konvertierens

Ausgabe:

JPEG -Bilder konvertieren in Speicherströmen mit ConvertImageToByteArray (oder ähnlichen Methoden) in einen generischen GDI -Fehler:

<code>System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.</code>
Nach dem Login kopieren

Dieses Problem betrifft nur JPEGs; PNG -Conversions funktionieren ohne Probleme.

Grundursache:

Der Fehler stammt aus dem vorzeitigen Schließen des Speicherstroms, mit dem das Bildobjekt vor das Bild gespeichert wird.

Auflösung:

Die Lösung besteht darin, den Speicherstrom während des Bildspartvorgangs offen zu halten:

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
}
Nach dem Login kopieren

Weitere Hinweise:

Die Verwendung eines Speicherstroms ist entscheidend für die Erhaltung des MIME -Typs des Bildes. Ohne ihn ist der MIME -Typ des Ausgangsbildes undefiniert und kompliziert die allgemeine Fehlerbehandlung.

Das obige ist der detaillierte Inhalt vonWarum wirft das Konvertieren eines JPEG in einen MemoryStream einen 'generischen Fehler in der GDI' -Ausnahme aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage