简体   繁体   English

如何使用QRCoder进行迁移; 使用ZXing; 在asp.net?

[英]How to migrate using QRCoder; to using ZXing; in asp.net?

How to migrate using QRCoder; 如何使用QRCoder进行迁移; to using ZXing; 使用ZXing; in asp.net , Because I learn How to Generate QR Code Using ASP.NET with 在asp.net中,因为我学习了如何使用ASP.NET与

https://www.c-sharpcorner.com/blogs/how-to-generate-qr-code-using-asp-net https://www.c-sharpcorner.com/blogs/how-to-generate-qr-code-using-asp-net

website but code in website use QRCoder library not support UTF-8 encoding , I have migrate QRCoder library code at line 16 - line 31 to ZXing library with 网站,但网站中使用QRCoder库的代码不支持UTF-8编码,我已将第16行-第31行的QRCoder库代码迁移到ZXing库,

https://github.com/ritesh9835/QrCode https://github.com/ritesh9835/QrCode/blob/master/QRcodeDemo/QRcodeDemo/Controllers/HomeController.cs https://github.com/ritesh9835/QrCode https://github.com/ritesh9835/QrCode/blob/master/QRcodeDemo/QRcodeDemo/Controllers/HomeController.cs

website instead QRCoder library code at line 16 - line 31 (Sample library code QRCoder and Zxing at the bottom). 网站而不是第16行-第31行的QRCoder库代码(示例库代码QRCoder和Zxing在底部)。

QRCoder Library code. 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 Library code to instead QRCoder library code at line 16 - line 31. 在第16行-第31行将Zxing库代码改为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;
        }

You mean like this ? 你的意思是这样吗?

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);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM