私はこの厄介な問題の解決策を探していましたが、残念ながら私にはうまくいかないように思われる答えがかなり見つかりました。
画像を JPEG または PNG として Web ブラウザーに出力する必要がある次の ASP.NET コードがあります。
public partial class MyImg : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
using(Bitmap bmp = new Bitmap(880, 520))
{
using (System.Drawing.Graphics gfx = System.Drawing.Graphics.FromImage(bmp))
{
try
{
gfx.Clear(Color.Aqua);
// finalizeOutput(bmp, gfx, MyImageType.SCGIT_JPEG); //Works
finalizeOutput(bmp, gfx, MyImageType.SCGIT_PNG); //DOES NOT Work
}
catch (Exception ex)
{
}
}
}
}
protected void finalizeOutput(System.Drawing.Graphics gfx, Bitmap bmp, MyImageType imageType)
{
//Get image type
ImageFormat imgFmt;
string strContentType;
switch (imageType)
{
case MyImageType.SCGIT_GIF:
strContentType = "image/gif";
imgFmt = ImageFormat.Gif;
break;
case MyImageType.SCGIT_PNG:
strContentType = "image/png";
imgFmt = ImageFormat.Png;
break;
default:
strContentType = "image/jpeg";
imgFmt = ImageFormat.Jpeg;
break;
}
//Finalizing and Cleaning Up
Response.ContentType = strContentType;
bmp.Save(Response.OutputStream, imgFmt); //THROWS EXCEPTION for png type: "A generic error occurred in GDI+."
// bmp.Dispose();
// gfx.Dispose();
Response.End();
}
}
上記の方法は、Windows 7 にインストールされた VS2010 開発 IIS から問題なく動作しますが、Vista でまったく同じコードを試すと、「GDI+ で一般的なエラーが発生しました」という例外がスローされますが、画像タイプが PNG の場合のみです。 、JPEGでもOKです。
これを解決する方法はありますか?