我正在创建二维码,我在其上使用了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;
}
答案 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).
}