用到外部一个DLL文件(ThoughtWorks.QRCode.dll),看效果

生成截图

识别截图

生成二维码后右键菜单可以保存二维码图片,然后可以到识别模式下进行识别,当然生成后可以用手机扫描识别出来,或者用手机直接扫描以上两张图也能看到识别后的结果。

使用方法,在解决方案中引用上面那个dll文件,引入命名空间

  1. using ThoughtWorks.QRCode.Codec;
  2. using ThoughtWorks.QRCode.Codec.Data;

看完整的生成二维码代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using ThoughtWorks.QRCode.Codec;
  9. using ThoughtWorks.QRCode.Codec.Data;
  10. namespace 二维码
  11. {
  12. public partial class UC_To : UserControl
  13. {
  14. public UC_To()
  15. {
  16. InitializeComponent();
  17. }
  18. private void button1_Click(object sender, EventArgs e)
  19. {
  20. if (textBox1.Text.Trim() != "")
  21. {
  22. string enCodeString = textBox1.Text;
  23. QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
  24. pictureBox1.Image = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
  25. }
  26. //else
  27. //MessageBox.Show("请输入内容");
  28. }
  29. private void 保存图片ToolStripMenuItem_Click(object sender, EventArgs e)
  30. {
  31. if (pictureBox1.Image != null)
  32. {
  33. SaveFileDialog s = new SaveFileDialog();
  34. s.Title = "保存二维码图片";
  35. s.Filter = "图片文件(*.jpg)|*.jpg";
  36. if(s.ShowDialog()==DialogResult.OK)
  37. try
  38. {
  39. pictureBox1.Image.Save(s.FileName,System.Drawing.Imaging.ImageFormat.Jpeg);
  40. MessageBox.Show("保存成功");
  41. }
  42. catch { MessageBox.Show("保存失败"); }
  43. }
  44. }
  45. }
  46. }

看完整的识别二维码的代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using ThoughtWorks.QRCode.Codec;
  9. using ThoughtWorks.QRCode.Codec.Data;
  10. namespace 二维码
  11. {
  12. public partial class UC_From : UserControl
  13. {
  14. public UC_From()
  15. {
  16. InitializeComponent();
  17. }
  18. string filepath = "";
  19. private void button1_Click(object sender, EventArgs e)
  20. {
  21. OpenFileDialog p = new OpenFileDialog();
  22. p.Title = "请选择二维码文件";
  23. p.Filter = "图片文件(*.jpg)|*.jpg";
  24. p.Multiselect = false;
  25. if (p.ShowDialog() == DialogResult.OK)
  26. {
  27. filepath = p.FileName;
  28. System.Threading.Thread t = new System.Threading.Thread(ss);
  29. t.IsBackground = true;
  30. t.Start();
  31. }
  32. }
  33. private void ss()
  34. {
  35. if (filepath != "")
  36. {
  37. string tt = "";
  38. try
  39. {
  40. Invoke((EventHandler)delegate
  41. {
  42. button1.Enabled = false;
  43. button1.Text = "Waiting!";
  44. pictureBox1.Image = new Bitmap(filepath);
  45. });
  46. //pictureBox1.Size = new Size(new Bitmap(filepath).Size.Width, new Bitmap(filepath).Size.Height);
  47. QRCodeDecoder qrDecoder = new QRCodeDecoder();
  48. string txtMsg = qrDecoder.decode(new QRCodeBitmapImage(new Bitmap(pictureBox1.Image)), Encoding.UTF8);
  49. tt = txtMsg;
  50. }
  51. catch { tt = "识别失败"; }
  52. Invoke((EventHandler)delegate
  53. {
  54. textBox1.Text = tt;
  55. button1.Enabled = true;
  56. button1.Text = "识别";
  57. });
  58. }
  59. System.Threading.Thread.CurrentThread.Abort();
  60. }
  61. private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
  62. {
  63. e.Handled = true;
  64. }
  65. }
  66. }

C#生成和识别二维码的更多相关文章

  1. python实现树莓派生成并识别二维码

    python实现树莓派生成并识别二维码 参考来源:http://blog.csdn.net/Burgess_Liu/article/details/40397803 设备及环境 树莓派2代 官方系统R ...

  2. 使用ZXing.Net生成与识别二维码(QR Code)

    Google ZXing是目前一个常用的基于Java实现的多种格式的1D/2D条码图像处理库,出于其开源的特性其现在已有多平台版本.比如今天要用到的ZXing.Net就是针对微软.Net平台的版本.使 ...

  3. 在Windows IoT上生成和识别二维码

    在Windows IoT生成和识别二维码,实际上由于是UWP上实现,所以,理论上,这些生成和识别二维码的方法也可以在其它平台上运行. 关于二维码的生成有很多库可以实现,比如QRCoder,这个库可以在 ...

  4. Python3+qrcode+zxing生成和识别二维码教程

    一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错“Cou ...

  5. PHP 生成、识别二维码及安装相关扩展/工具

    2018-02-20 00:30:26  更新:推荐新扩展(极力推荐) 这篇文章里用的两个二维码扩展都有些问题和麻烦:phpqrcode(生成二维码)的源码有点小 bug: 而 php-zbarcod ...

  6. 利用ZXing.Net生成和识别二维码

    ZXing.Net:ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库. github:https://github.com/micjahn/ZXing.Net 直接将字符 ...

  7. ZXing 生成、读取二维码(带logo)

    前言 ZXing,一个支持在图像中解码和生成条形码(如二维码.PDF 417.EAN.UPC.Aztec.Data Matrix.Codabar)的库.ZXing(“zebra crossing”)是 ...

  8. Pyqt+QRcode 生成 识别 二维码

    1.生成二维码 python生成二维码是件很简单的事,使用第三方库Python QRCode就可生成二维码,我用Pyqt给QRcode打个壳 一.python-qrcode介绍 python-qrco ...

  9. HTML5实现扫描识别二维码/生成二维码

    扫描识别二维码 思路: 1. 操作摄像头,获取图片.HTML5 WEBRTC的navigator.getUserMedia方法去实时获取摄像头资源.  2. 利用canvas使用相关算法分析图片识别图 ...

随机推荐

  1. Photoshop CS4破解方法

    先在网上下载Photoshop CS4的版本,安装后按如下步骤操作即可. 激活码: 1330-1082-3503-2270-3738-6738 1330-1776-8671-6289-7706-291 ...

  2. MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”

    问题 MSBUILD : error MSB3428: 未能加载 Visual C++ 组件"VCBuild.exe".要解决此问题,1) 安装 .NET Framework 2. ...

  3. 使用unity3d和tensorflow实现基于姿态估计的体感游戏

    使用unity3d和tensorflow实现基于姿态估计的体感游戏 前言 之前做姿态识别,梦想着以后可以自己做出一款体感游戏,然而后来才发现too young.但是梦想还是要有的,万一实现了呢.趁着p ...

  4. muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制

    目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...

  5. Vue.js 相关知识(动画)

    1. 简介 Vue 在插入.更新或移除 DOM 时,提供多种不同方式的过渡效果,并提供 transition 组件来实现动画效果(用 transition 组件将需执行过渡效果的元素包裹) 语法:&l ...

  6. MYSQL数据库封装类

    <?phpclass DBDA{    public $host="localhost";    public $uid="root";    publi ...

  7. Python中的字典详解

    https://www.cnblogs.com/yjd_hycf_space/p/6880026.html

  8. Python的三种格式化输出

    今天刚学了python的三种格式化输出,以前没接触过这么有趣的输出方式,现在来分享一下. #!/user/bin/env python#coding:utf-8#三种格式化输出 #第一种格式化输出na ...

  9. Winform设置托盘程序,托盘显示

    1.拖一个NotifyIcon,一个ContextMenuStrip控件到主窗体中 2.设置notifyIcon1,一个contextMenuStrip1(如下图) Icon为托盘图标,Text托盘显 ...

  10. vue 跳转路由传参数用法

    // 组件 a <template> <button @click="sendParams">传递</button> </template ...