首页 > 编程语言 >C# 实现二维码

C# 实现二维码

时间:2023-09-13 15:33:43浏览次数:31  
标签:类库 C# qrCodeEncoder 实现 二维码 str QRCode using

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 应用

标签:类库,C#,qrCodeEncoder,实现,二维码,str,QRCode,using
From: https://www.cnblogs.com/Dongmy/p/17699823.html

相关文章

  • C#时间转换
    //获取日期+时间DateTime.Now.ToString("yyyyMMddHHmmss");//20080101130101----24小时制 //获取日期DateTime.Now.ToLongDateString().ToString();//2008年9月4日DateTime.Now.ToShortDateString().ToString();//2008-9-4DateTime.Now.ToString("yyyy-MM-dd&quo......
  • mysql中information_schema.columns字段说明
    语句如下:SELECT *FROM information_schema.COLUMNSWHERE TABLE_SCHEMA='具体某个数据库';各字段含义如下:字段含义table_schema 表所有者(对于schema的名称)table_name 表名column_name 列名ordinal_position 列标识号column_default 列的默认值is_nullable 列的为空性......
  • C++算法进阶系列之倍增算法解决求幂运算
    1.引言学习倍增算法,先了解什么是倍增以及倍增算法的优势。如果面前有一堆石子,要求计算出石子的总数量。这是一个简单的数数问题,可以:一颗石子一颗石子的数。两颗石子两颗石子的数。三颗石子三颗石子的数。或者更多颗石子更多颗石子的数……在石子很多的情况下,每一次选择更......
  • 【渗透工具】基于nuclei图形化工具
    简介Nuclei用于基于模板跨目标发送请求,从而实现零误报并提供对大量主机的快速扫描。Nuclei提供对各种协议的扫描,包括TCP、DNS、HTTP、SSL、File、Whois、Websocket、Headless等。凭借强大而灵活的模板,Nuclei可用于对各种安全检查进行建模。使用方法配置nuclei工具目录以......
  • HashCat解密成功界面提示
    一、命令行显示Status…:Cracked:代表已找到密码。二、结果输出到文件。-oout.txthashcat.exe-m13000-a3'$rar5$16$fd80c0dad768537589fd4a01167abade$15$576345a86e55ff8cd1258d28b6c5e1b5$8$ecbfa2295c0972e4'wlzhg@[email protected]三、没有用-o指定保......
  • call/apply和 bind
    call接受多个参数,第一个参数表示this的指向,后面的多个参数都是传参functionperson(name,age){ console.log(`mynameis${name}ageis${age}`);} person.call(this,'大海',18);apply接受两个参数,第一个参数表示this的指向,第二个参数为数组functionperson(na......
  • pyinstaller 报错ImportError: No module named _bootlocale
    生成环境的安装包,执行如下命令会有报错:pyinstaller-wF-pvenv310/Scripts-pvenv310/Lib/site-packages--add-data"./fish.jpg:."--add-data"./kb.ini:."-ifish.ico-nprogram_namemain.py328INFO:PyInstaller:3.6328INFO:Python:3.10.11343INFO:......
  • Understanding UML in seconds
    UML是一种分析设计语言,也就是一种建模语言。UML结构解析UML其结构主要包括以下几个部分:视图(View)多个图形组成的集合;图(Diagram)图的种类有13种图,但常用的也就两种(1.需求用例图,2.开发类图);模型元素(ModelElement)如类、对象、消息以及这些概念之间的关系,如关联关系、依赖关系......
  • JScript判断图片是否存在
    //判断图片是否存在functioncheckImgExists(imgurl){  varImgObj=newImage();//判断图片是否存在  ImgObj.src=imgurl;  //存在图片  if(ImgObj.fileSize>0||(ImgObj.width>0&&ImgObj.height>0)){    alert("true");  ......
  • 拟南芥Sec14蛋白(SFH5和SFH7)介导磷脂酸在细胞器间的转运,并调控叶绿体的发育
    脂质在真核光合生物的叶绿体中建立了特殊的类囊体膜,然而,从其他细胞器向叶绿体传递脂质的分子机制仍需要进一步阐明。在这里,我们揭示了拟南芥Sec14同源蛋白AtSFH5和AtSFH7在从内质网(ER)传递磷脂酸(PA)到叶绿体中的结构基础,以及它们在调控叶绿体脂质组成和类囊体发育中的功能。AtSFH5和......