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>
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 }
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!