C# 二维码 ThoughtWorks.QRCode.dll

原文出处:https://www.cnblogs.com/cang12138/p/5209669.html (已做有补充)

延伸阅读:使用ThoughtWorks.QRCode 生成二维码(带logo)

ThoughtWorks.QRCode.dll:

1、ThoughtWorks.QRCode.dll

2、通过 NuGet 添加

后台代码:
 

using System;
using System.Drawing;
using System.Text;
using ThoughtWorks.QRCode.Codec;

namespace ConsoleTest
{
    public class Test
    {
        #region 生成二维码
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        private static string QRCode()
        {
            System.Drawing.Bitmap bt;
            string enCodeString = "http://www.baidu.com";

            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
            qrCodeEncoder.QRCodeScale = 4;//大小(值越大生成的二维码图片像素越高)
            qrCodeEncoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//错误效验、错误更正(有4个等级)
            qrCodeEncoder.QRCodeBackgroundColor = Color.Yellow;//背景色
            qrCodeEncoder.QRCodeForegroundColor = Color.Green;//前景色

            bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);

            string filename = "code";
            string file_path = AppDomain.CurrentDomain.BaseDirectory + "QRCode\\";
            string codeUrl = file_path + filename + ".jpg";

            //根据文件名称,自动建立对应目录
            if (!System.IO.Directory.Exists(file_path))
                System.IO.Directory.CreateDirectory(file_path);

            bt.Save(codeUrl);//保存图片
            return codeUrl;
        }
        #endregion
    }
}

 

二维码效果:



补充:
将二维码转换成网页可以显示的数据

        /// <summary>
        /// 将二维码转换成网页可以显示的数据
        /// </summary>
        /// <param name="qrcode"></param>
        /// <returns></returns>
        public static string GetQrcodeImageData(string qrcode)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeScale = 12;
            qrCodeEncoder.QRCodeVersion = 2;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
      
            var bmp = qrCodeEncoder.Encode(qrcode);

            byte[] b = null;
            using (MemoryStream stream = new MemoryStream())
            {
                bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);//将图像以指定的格式存入缓存内存流
                b = new byte[stream.Length];
                stream.Position = 0;
                stream.Read(b, 0, Convert.ToInt32(b.Length));
            }
            return "data:image/jpeg;base64," + Convert.ToBase64String(b);
        }


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值