二维码现在用途很多,怎么用C#编程生成呢?

准备 ThoughtWorks.QRCode.dll

需要 一个类 QRCode,这个类专门来生成二维码的

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ThoughtWorks.QRCode;
using ThoughtWorks.QRCode.Codec;namespace QRCodePro
{public class QRCode{/// 生成二维码/// </summary>/// <param name="strData">要生成的文字或者数字</param>/// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param>/// <param name="level">大小:L M Q H</param>/// <param name="version">版本:如 8</param>/// <param name="scale">比例:如 4</param>/// <returns></returns>public static Image CreateCode_Choose(string strData, string qrEncoding, string size, int version, int scale){QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();string encoding = qrEncoding;switch (encoding){case "Byte":qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;break;case "AlphaNumeric":qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;break;case "Numeric":qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;break;default:qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;break;}qrCodeEncoder.QRCodeScale = scale;qrCodeEncoder.QRCodeVersion = version;switch (size){case "L":qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;break;case "M":qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;break;case "Q":qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;break;default:qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;break;}//文字生成图片Image image = qrCodeEncoder.Encode(strData);return image;}}
}

在vs中新建窗体,搭建窗体,如图所示:

在主窗体中需要的代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace QRCodePro
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){cboEncoding.Items.Add("Byte");cboEncoding.Items.Add("AlphaNumeric");cboEncoding.Items.Add("Numeric");cboEncoding.SelectedIndex = 0;//填充大小下拉框cboSize.Items.Add("M");cboSize.Items.Add("L");cboSize.Items.Add("Q");cboSize.Items.Add("H");cboSize.SelectedIndex = 0;//填充文本框txtVersion.Text = "8";txtScale.Text = "4";}private void btnCreateCode_Click(object sender, EventArgs e){string content = txtContent.Text;int version = Convert.ToInt32(txtVersion.Text);int scale = Convert.ToInt32(txtScale.Text);string size = cboSize.SelectedItem.ToString();string encoding = cboEncoding.SelectedItem.ToString();//检查空值字符串if (content == null || content == ""){MessageBox.Show("请输入二维码信息,支持中文");}else{Image img = QRCode.CreateCode_Choose(content, encoding, size, version, scale);picCode.Image = img;}}private void btnReset_Click(object sender, EventArgs e){txtContent.Text = "";}private void btnSave_Click(object sender, EventArgs e){if (picCode.Image != null){SaveImages(picCode);}else{MessageBox.Show("还没生成图像呢!");}}private void SaveImages(PictureBox pic){string Parentpath = @"D:\Photo";//自1970 年1月1日00:00:00 GMT以来的毫秒数string filename = DateTime.Now.Ticks.ToString();if (Parentpath.Substring(Parentpath.Length - 1, 1) != @"\")Parentpath = Parentpath + @"\";string childPath = Parentpath + DateTime.Now.ToString("yyyyMMdd");if (!Directory.Exists(childPath))Directory.CreateDirectory(childPath);pic.Image.Save(childPath + "\\" + filename + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);MessageBox.Show("保存成功!");}}
}

实现的效果

保持文件

要把此项目移植到asp.net网站上也是极其简单的,这里就不再演示了。

转载于:https://www.cnblogs.com/fanling521/p/5504933.html

C#实现二维码功能,winform 以及 asp.net均可以用相关推荐

  1. SNF开发平台WinForm-平板拍照及扫描二维码功能

    在我们做项目的时候,经常会有移动平板处理检验,审核等,方便移动办公.这时就需要在现场拍照上传问题,把当场问题进行上传,也有已经拍完照的图片或加工过的图片进行上传.还有在车间现场一体机,工控机 这种产物 ...

  2. VC++利用笔记本自带摄像头扫二维码功能(附源码demo)

      VC++开发常用功能一系列文章 (欢迎订阅,持续更新...) 第8章:VC++利用笔记本自带摄像头扫二维码功能(附源码demo) 源代码demo已上传到百度网盘:永久生效  ,代码实现了打开笔记本 ...

  3. vue 根据链接生成二维码(功能实现)

    今天同事问我一个问题,在vue项目中想要根据一个链接显示对应的二维码该怎么实现. 我前一段时间,有用apicloud项目生成二维码的功能,但是vue版本的没有处理过.百度后找到一个可行的方案: 大神实 ...

  4. Android | 教你如何开发扫二维码功能

    华为机器学习服务(ML Kit) 提供机器学习套件,为开发者应用机器学习能力开发各类应用提供优质体验.得益于华为长期技术积累,ML Kit 为开发者提供简单易用.服务多样.技术领先的机器学习能力,助力 ...

  5. 让你的APP轻松加上扫描二维码功能

    在这个二维码横行的年代,如果一个APP连扫描二维码的功能都没有是会被耻笑的.今天小老虎教小白们如何为自己的APP添加扫描二维码功能和生成二维码,并做到外部扫描跳转网页,内部扫描跳转具体Activity ...

  6. 在js中调用微信的扫描二维码功能

    在js中调用微信的扫描二维码功能* 关键代码 <html> <head>`在这里插入代码片`<title>js调用微信扫一扫功能测试</title>&l ...

  7. 移动端H5(JavaScript)识别二维码功能

    前言 时隔一年多, 再次接触到H5识别二维码功能,这次直接写个demo方便大家学习和使用.(其实是方便自己抄自己代码-). 直接上代码 QRcode下载地址 长的好看的都点⭐了!!! <!DOC ...

  8. 【在web项目jsp页面自动生成二维码功能】

    在web项目jsp页面自动生成二维码功能 原文: http://www.cnblogs.com/gczmn/. https://www.jq22.com/jquery-info294/. 先将下面的文 ...

  9. 在Vue中调用微信的扫描二维码功能

    在Vue中调用微信的扫描二维码功能 步骤 新建vue文件(这里采用mint的标签库--就一个按钮~~) 关键代码 <template><div class="login_d ...

  10. 微信小程序实现生成二维码功能并下载到本地

    微信小程序实现生成二维码功能并下载到本地 背景 实现 备注 背景 有这样一个需求,后台返回了url地址,微信小程序将url地址转成二维码图片,展示在页面上,并且该二维码图片可下载到用户手机相册中 实现 ...

最新文章

  1. 【发布】温度监测报警器v1.2a内测版!
  2. 导航菜单设计五步法——B端设计指南
  3. POJ - 1743 Musical Theme(二分+后缀数组+差分数组)
  4. [转载] java 计算协方差_Java的深度:通过协方差暴露的API泄漏
  5. hihoCoder #1162 : 骨牌覆盖问题·三 (矩阵快速幂,DP)
  6. java与模式孙悟空_悟空模式-java-工厂方法模式
  7. 130 个相见恨晚的超实用网站,一次性分享出来,十倍提高工作效率
  8. 使用MyBatis快速生成代码
  9. 关于unity导出FBX文件
  10. 花生地铁WiFi运营商称“上亿用户资料泄露”系杜撰
  11. springboot+农机装备生产车间物料配送车辆调度管理系统 毕业设计-附源码181710
  12. 关于环信客服的集成与使用
  13. 网站制作教程:PageAdmin建站系统在win2012上的安装
  14. html+canvas+输入文字换行,canvas文字换行
  15. 大文件传输软件的优势你了解吗?
  16. SQL查询——查询和和xxx同学所选课程完全一样的同学
  17. C++使用windows API实现https站点的访问
  18. 路由器redirect 配置_新页软件:如何设定双层以上路由器互联网模式
  19. 打印机之——G3800故障维修
  20. java连接.accdb_尝试通过Java 8中的JDBC-ODBC连接到.accdb文件时...

热门文章

  1. SSRF(服务端请求伪造)原理/防御
  2. XXE漏洞原理/防御
  3. 对象不支持属性或方法dbzz.html,JavaScript 中 setTimeout()的用法 ZZ
  4. 新DELL服务器在F2设置界面下raid的配置
  5. 6.Hibernate多对多关系建立
  6. Docker 安装Centos,Tomcat,Jdk等相关的自定义(Dockerfile)镜像
  7. TextView的跑马灯效果(AS开发实战第二章学习笔记)
  8. CACTI实现飞信报警
  9. json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)...
  10. Neutron的SDN化