Wenn man in ASP.NET ein Image-Objekt in den Ausgabestream schreiben möchte, kann es zu einer Exception mit der Beschreibung "A generic error occurred in GDI+" kommen. Dies kann daran liegen, das einem die Schreibberechtigung für den jeweiligen Ordner fehlen, wobei man meinen sollte das es nichts mit dem Dateisystem zu tun hat.
Ein Workaround besteht darin, das Bild in einen MemoryStream und dann erst in Response zu schreiben.
Folgende Namespaces werden benötigt:
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
Image img = null;//Bild laden o.ä. ...
img.Save(Response.OutputStream, ImageFormat.Png);//Geht hier nicht
//Nachfolgender Code geht
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, ImageFormat.Png);
ms.WriteTo(this.Response.OutputStream);
}
Kommentare zum Snippet