C# 实现二维码

https://blog.csdn.net/qq_43562262/article/details/105988725

查了下资料,约有两种方法,一种是引用新的dll,另一种是安装nuget中的QRcoder,在此记录下别人整理的资源。

必须的引入的类库
using System;
using System.Drawing;
using System.Text;
using ThoughtWorks.QRCode.Codec; // 第三方类库,C#类库中不存在


采用面向对象的方式调用生成方法/函数
/// <summary>
/// 生成二维码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btn_CreateQRCode_Click(object sender, EventArgs e)
{
// str 二维码的内容
CreateQRImg(str);
}

核心代码
调用 ThoughtWorks.QRCode.dll 类库中二维码的实现方式,实现常见的二维码

注释比较清楚不做过多赘述

/// <summary>
/// 生成并保存二维码图片的方法
/// </summary>
/// <param name="str">输入的内容</param>
private void CreateQRImg(string str)
{
Bitmap bt;
string enCodeString = str;
//生成设置编码实例
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//设置二维码的规模 默认 4
qrCodeEncoder.QRCodeScale = 4;
//设置二维码的版本 默认 7
qrCodeEncoder.QRCodeVersion = 7;
//设置错误检验级别 默认为中等
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
//生成二维码图片
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
//二维码图片名称
string filename = DateTime.Now.ToString("[名字最好用时间防重]");
//保存二维码图片在photos路径下
bt.Save(Server.MapPath("~/photos/") + filename + ".jpg");
//图片控件要显示的二维码图片路径
this.img_QRImag.ImageUrl = "~/photos/" + filename + ".jpg";
}

在这里我使用的是,获取键盘的输入值做演示
实际应用中 str 应该是程序自动生成值
ThoughtWorks.QRCode.dll 类库是要自己下载的 https://www.nuget.org/packages/ThoughtWorks.QRCode/
项目开源可自行下载
ps: 二维码一般为图片,所以我们的主程序应该为 C/S 或 B/S 应用

posted @ 2023-09-13 15:29  yinghualeihenmei  阅读(145)  评论(0编辑  收藏  举报