日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

二维码识别程序及代码

發布時間:2024/6/21 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 二维码识别程序及代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

 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 }

總結

以上是生活随笔為你收集整理的二维码识别程序及代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。