如何使用 QRCoder 迁移;使用ZXing;在 asp.net?
How to migrate using QRCoder; to using ZXing; in asp.net?
如何使用二维码迁移;使用ZXing;在 asp.net ,因为我学习了如何使用 ASP.NET 和
生成二维码
https://www.c-sharpcorner.com/blogs/how-to-generate-qr-code-using-asp-net
网站但网站中的代码使用 QRCoder 库不支持 UTF-8 编码,我已将第 16 行至第 31 行的 QRCoder 库代码迁移到 ZXing 库
https://github.com/ritesh9835/QrCode
https://github.com/ritesh9835/QrCode/blob/master/QRcodeDemo/QRcodeDemo/Controllers/HomeController.cs
网站第 16 行 - 第 31 行改为 QRCoder 库代码(示例库代码 QRCoder 和 Zxing 在底部)。
QRCoder库代码。
using QRCoder;
using System;
using System.Drawing;
using System.IO;
namespace QRCode_Demo
{
public partial class QRCode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnGenerate_Click(object sender, EventArgs e)
{
string code = txtQRCode.Text;
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
imgBarCode.Height = 150;
imgBarCode.Width = 150;
using (Bitmap bitMap = qrCode.GetGraphic(20))
{
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] byteImage = ms.ToArray();
imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
PlaceHolder1.Controls.Add(imgBarCode);
}
}
}
}
将 Zxing 库代码替换为第 16 行至第 31 行的 QRCoder 库代码。
private string GenerateQRCode(string qrcodeText)
{
string folderPath = "~/Images/";
string imagePath = "~/Images/QrCode.jpg";
// create new Directory if not exist
if (!Directory.Exists(Server.MapPath(folderPath)))
{
Directory.CreateDirectory(Server.MapPath(folderPath));
}
var barcodeWriter = new BarcodeWriter();
barcodeWriter.Format = BarcodeFormat.QR_CODE;
var result = barcodeWriter.Write(qrcodeText);
string barcodePath = Server.MapPath(imagePath);
var barcodeBitmap = new Bitmap(result);
using (MemoryStream memory = new MemoryStream())
{
using (FileStream fs = new FileStream(barcodePath, FileMode.Create, FileAccess.ReadWrite))
{
barcodeBitmap.Save(memory, ImageFormat.Jpeg);
byte[] bytes = memory.ToArray();
fs.Write(bytes, 0, bytes.Length);
}
}
return imagePath;
}
你的意思是这样的?
protected void btnGenerate_Click(object sender, EventArgs e)
{
string code = txtQRCode.Text;
var barcodeWriter = new BarcodeWriter();
barcodeWriter.Format = BarcodeFormat.QR_CODE;
barcodeWriter.Options.Margin = 0;
barcodeWriter.Options.Width = 150;
barcodeWriter.Options.Height = 150;
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
imgBarCode.Height = 150;
imgBarCode.Width = 150;
using (Bitmap bitMap = barcodeWriter.Write(code))
{
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] byteImage = ms.ToArray();
imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
PlaceHolder1.Controls.Add(imgBarCode);
}
}
如何使用二维码迁移;使用ZXing;在 asp.net ,因为我学习了如何使用 ASP.NET 和
生成二维码https://www.c-sharpcorner.com/blogs/how-to-generate-qr-code-using-asp-net
网站但网站中的代码使用 QRCoder 库不支持 UTF-8 编码,我已将第 16 行至第 31 行的 QRCoder 库代码迁移到 ZXing 库
https://github.com/ritesh9835/QrCode https://github.com/ritesh9835/QrCode/blob/master/QRcodeDemo/QRcodeDemo/Controllers/HomeController.cs
网站第 16 行 - 第 31 行改为 QRCoder 库代码(示例库代码 QRCoder 和 Zxing 在底部)。
QRCoder库代码。
using QRCoder;
using System;
using System.Drawing;
using System.IO;
namespace QRCode_Demo
{
public partial class QRCode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnGenerate_Click(object sender, EventArgs e)
{
string code = txtQRCode.Text;
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
imgBarCode.Height = 150;
imgBarCode.Width = 150;
using (Bitmap bitMap = qrCode.GetGraphic(20))
{
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] byteImage = ms.ToArray();
imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
PlaceHolder1.Controls.Add(imgBarCode);
}
}
}
}
将 Zxing 库代码替换为第 16 行至第 31 行的 QRCoder 库代码。
private string GenerateQRCode(string qrcodeText)
{
string folderPath = "~/Images/";
string imagePath = "~/Images/QrCode.jpg";
// create new Directory if not exist
if (!Directory.Exists(Server.MapPath(folderPath)))
{
Directory.CreateDirectory(Server.MapPath(folderPath));
}
var barcodeWriter = new BarcodeWriter();
barcodeWriter.Format = BarcodeFormat.QR_CODE;
var result = barcodeWriter.Write(qrcodeText);
string barcodePath = Server.MapPath(imagePath);
var barcodeBitmap = new Bitmap(result);
using (MemoryStream memory = new MemoryStream())
{
using (FileStream fs = new FileStream(barcodePath, FileMode.Create, FileAccess.ReadWrite))
{
barcodeBitmap.Save(memory, ImageFormat.Jpeg);
byte[] bytes = memory.ToArray();
fs.Write(bytes, 0, bytes.Length);
}
}
return imagePath;
}
你的意思是这样的?
protected void btnGenerate_Click(object sender, EventArgs e)
{
string code = txtQRCode.Text;
var barcodeWriter = new BarcodeWriter();
barcodeWriter.Format = BarcodeFormat.QR_CODE;
barcodeWriter.Options.Margin = 0;
barcodeWriter.Options.Width = 150;
barcodeWriter.Options.Height = 150;
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
imgBarCode.Height = 150;
imgBarCode.Width = 150;
using (Bitmap bitMap = barcodeWriter.Write(code))
{
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] byteImage = ms.ToArray();
imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
PlaceHolder1.Controls.Add(imgBarCode);
}
}