zoukankan      html  css  js  c++  java
  • 二维码识别程序及代码

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 using System.Windows.Forms;
    10 using ThoughtWorks.QRCode.Codec;//引用ThoughtWorks.QRcode.Codec二维码生成类
    11 
    12 using ThoughtWorks.QRCode.Codec.Data;//引用ThoughtWorks.QRCode.Codec.Data;二维码识别类
    13 namespace 生成二维码
    14 {
    15     public partial class Form1 : Form
    16     {
    17         public Form1()
    18         {
    19             InitializeComponent();
    20         }
    21 
    22         Image image;
    23 
    24         private void button1_Click(object sender, EventArgs e)
    25         {
    26 
    27             //声明一个 QRCodeEncoder 类实例
    28             QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
    29 
    30             //设置编码方式 将其设置为字节编码(还有两种编码方式),现在的流行的普遍的二维码都是字节编码。
    31             qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
    32 
    33             //设置二维码的大小
    34             qrCodeEncoder.QRCodeScale = 5;
    35             //设置二维码的版本
    36             qrCodeEncoder.QRCodeVersion = 7;
    37             //设置错误校验(错误更正)的级别,这里设置为中等,一共有四个级别
    38             qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
    39             //设置要生成二维码的字
    40             string str = textBox1.Text.ToString().Trim();
    41             //编码并赋处理成位图数据
    42             System.Drawing.Bitmap bp = qrCodeEncoder.Encode(str.ToString());
    43             //将位图数据赋给图片类
    44             image = bp;
    45             //将图片赋给控件,用于显示出来
    46             pictureBox1.Image = image;
    47 
    48         }
    49 
    50         private void button2_Click(object sender, EventArgs e)
    51         {
    52             //实例化一个保存对话框
    53             SaveFileDialog sf = new SaveFileDialog();
    54             sf.Title = "选择保存的位置";
    55             sf.Filter = "保存图片(*.jpg)|*.jpg|所有文件(*)|*.*";
    56             //设置默认文件类型显示顺序
    57             sf.FilterIndex = 1;
    58             //保存对话框是否记忆上次打开的目录
    59             sf.RestoreDirectory = true;
    60             if (sf.ShowDialog() == DialogResult.OK)
    61             {
    62 
    63                 Image im = this.pictureBox1.Image;
    64                 //获取文件路径
    65                 string localFilePath = sf.FileName.ToString();
    66                 //当文件保存路径不为空时
    67                 if (sf.FileName != "")
    68                 {
    69                     //获取文件名,不带路径
    70                     string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\") + 1);
    71                     string FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf("."));  //获取文件路径,带文件名,不带后缀
    72                     string fn = sf.FileName;
    73                     pictureBox1.Image.Save(FilePath + "-" + DateTime.Now.ToString("yyyyMMdd") + ".jpg");
    74                     MessageBox.Show("保存成功!");
    75 
    76                 }
    77             }
    78 
    79         }
    80 
    81         private void button3_Click(object sender, EventArgs e)
    82         {
    83 
    84             //实例化一个二维码解析器
    85             QRCodeDecoder deCoder = new QRCodeDecoder();
    86             //将图片解析为位图数据
    87             Bitmap bp = new Bitmap(this.pictureBox1.Image);
    88             //将位图数据用二维码解析器解析
    89             QRCodeBitmapImage qbm=new QRCodeBitmapImage(bp);
    90             //解析为字符串
    91             string deString = deCoder.decode(qbm);
    92 
    93             //还可以用下面这种写法,一条语句解析成字符串
    94             // String deString = deCoder.decode(new QRCodeBitmapImage(new Bitmap(this.pictureBox1.Image)));
    95            //在Label1中显示出来
    96             this.label1.Text = deString;
    97         }
    98     }
    99 }
  • 相关阅读:
    leetcode165
    leetcode63
    leetcode92
    leetcode86
    捣鼓Haskell
    递归操作链表
    treap(堆树)
    贪心策略 — 分数背包
    LeetCode.21
    LeetCode.94
  • 原文地址:https://www.cnblogs.com/hobe6699/p/5790608.html
Copyright © 2011-2022 走看看