在c#中将位图保存为.png文件时出现GDI +错误

时间:2015-03-24 01:28:44

标签: c# asp.net image bitmap zxing

我正在创建二维码,我在其上使用了ZXing。但是在将位图保存到物理文件时会给我一个错误。

请帮忙。谢谢!

  

GDI +中出现了一般错误

我也尝试改变路径,但错误仍然存​​在。

      protected void btnSaveInfo_Click(object sender, EventArgs e)
            {
                Bitmap img = new Bitmap(GenerateQR("HelloWorld"));
                img.Save("QRCode.png"); //here gives me an error
            }

      public Bitmap GenerateQR(string text)
            {
                var bw = new ZXing.BarcodeWriter();
                var encOptions = new ZXing.Common.EncodingOptions() { Width = 200, Height = 200, Margin = 0 };
                bw.Options = encOptions;
                bw.Format = ZXing.BarcodeFormat.QR_CODE;
                var result = new Bitmap(bw.Write(text));

                return result;
            }

1 个答案:

答案 0 :(得分:0)

您是在IIS或开发WebServer(Cassini)下运行吗?

如果要保存到磁盘,则需要确保ASP.NET应用程序有权写入文件(取决于您的网站运行的“池”,以及您分配给它的“身份”,如什么访问可用)。

ASP.NET可能会出现GDI +问题,具体取决于您的使用方式。

请查看此链接以了解一些常见问题:

还建议您处理创建的位图:

  protected void btnSaveInfo_Click(object sender, EventArgs e)
        {
            using (Bitmap img = GenerateQR("HelloWorld"))
            {
                img.Save("QRCode.png"); //here gives me an error
            }
        }

  public Bitmap GenerateQR(string text)
        {
            var bw = new ZXing.BarcodeWriter();
            var encOptions = new ZXing.Common.EncodingOptions() { Width = 200, Height = 200, Margin = 0 };
            bw.Options = encOptions;
            bw.Format = ZXing.BarcodeFormat.QR_CODE;

            return bw.Write(text); // already a bitmap...no need to copy (in fact copying might be part of your problem).
        }