二维码识别程序及代码
生活随笔
收集整理的這篇文章主要介紹了
二维码识别程序及代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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 }
總結
以上是生活随笔為你收集整理的二维码识别程序及代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 芦丁鸡家庭养殖方法是什么
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?