ASP.NET“GDI +中发生一般错误”仅发生在Vista计算机上的PNG图像上

时间:2012-07-21 17:40:59

标签: c# asp.net gdi+

我一直在寻找解决这个棘手问题的方法,并找到了不少答案,但遗憾的是这些答案对我来说似乎没有用。

我有以下ASP.NET代码,应该将图像作为JPEG或PNG输出到Web浏览器:

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。

知道如何解决这个问题吗?

0 个答案:

没有答案