二维码识别程序及代码

 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 }
时间: 2024-10-24 14:09:43

二维码识别程序及代码的相关文章

Qt+QZXing编写识别二维码的程序

本人最近在用Qt编写程序,需要用编写二维码识别功能.在网上搜寻一番,找到了QZXing.配置过程中确实出了一大把汗,这里我写这篇文章记录配置方法,替后人省一把汗吧!我的开发环境:MSVC2010 + Qt5 从这里下载最新版的QZXing_sourceV2.3.zip,解压之后得到的是源代码,里面有一个QZXing.pri文件.理论上用MSVC加载这个pri文件之后这个库的代码就会出现在工程的代码列表中,但是理论归理论,实际上msvc在加载pri的过程中,弹出一大堆错误信息,完全不知所云,网上找

微信小程序二维码识别

目前市场上二维码识别的软件或者网站越来越多,可是真正方便,无广告的却少之很少. 于是,自己突发奇想做了一个微信二维码识别的小程序. 包含功能: 1.识别二维码 ①普通二维码 ②条形码 ③只是复制解析出来的数据 2.生成二维码 ①只是从粘贴板生成二维码 软件截图: 体验二维码: 以下为主要代码 index.js // pages/main/index.js var QR = require("../../utils/qrcode.js"); Page({ data: { canvasHi

Python zxing 库解析(条形码二维码识别)

各种扫码软件 最近要做个二维码识别的项目,查到二维码识别有好多开源的不开源的软件 http://www.oschina.net/project/tag/238/ Zbar 首先试了一下Zbar,python加载ZBar时各种报错.可能的原因是zbar的dll文件是32位的,而我系统是64位的,所以运行不了.只能自己拿源码编译一个64位的出来,对于我这种伸手党来说自己编译源码是难以接受的,所以就放弃了.后来看到文章说Zbar不能识别倾斜的条形码,而且也不能定位条形码区域. Zxing zbar不可

iOS 花式二维码生成和二维码识别

iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个小库方便以后使用. 项目地址:https://github.com/EyreFree/EFQRCode EFQRCode 是一个用 Swift 编写的用来生成和识别二维码的库,它基于系统二维码生成与识别进行开发. 生成:利用输入的水印图/图标等资源生成各种艺术二维码: 识别:识别率比 iOS 原生二

QRCode - 二维码识别与生成

来源:Yi'mouleng(@丶伊眸冷) 链接:http://t.cn/R40WxcM 前言 有关二维码的介绍,我这里不做过多说明, 可以直接去基维百科查看,附上链接QR code(https://en.wikipedia.org/wiki/QR_code). IOS7之前,开发者进行扫码编程时,一般会借助第三方库.常用的是ZBarSDKa和ZXingObjC,IOS7之后,系统的AVMetadataObject类中,为我们提供了解析二维码的接口.经过测试,使用原生API扫描和处理的效率非常高,

基于opencv3.0和zbar下的条形码与二维码识别

其中对条码与二维码的识别分为以下4个步骤 1. 利用opencv和Zbar(或者Zxing)对标准的条形码图片(即没有多余背景干扰,且图片没有倾斜)进行解码,将解码信息显示出来,并与原始信息对比. 2. 利用opencv和Zbar(或者Zxing)对标准的QR二维码图片(即没有多余背景干扰,且图片没有倾斜)进行解码,将解码信息显示出来,并与原始信息对比. 3. 对非标准条形码,进行定位,然后用Zbar(或者Zxing)解码显示. 4. 对非标准的QR二维码图片,进行定位,然后用Zbar(或者Zx

android 图片二维码识别和保存(二)

续上一篇,开发图片二维码识别功能后,我们对功能进行性能分析内存占用显著提高了,不使用该功能内存占用大约是147M,使用这个功能多次以后,高达203M. 因此对功能进行研究,发现每次生成的图片没有即时的释放,导致内存中的图片不断累积,内存占用不断攀升.因此,需要对图片进行释放,释放的时候需要特别关注的地方有: 1.释放注意图片的状态. 2.注意异常的捕获. 下面就是图片释放的有关代码. /** * 回收bitmap */ public static void recycleBitmap(Bitma

使用zxing二维码识别

1.多二维码识别 (同一张图片中多二维码识别) 直接上代码舒服: 1 /** 2 * Parse multiple qr codes(解析多个二维码) 3 * 4 * @param bufferedImage image 5 * @return QRCode analysis results 6 */ 7 @Override 8 public Result[] analysisQRCodeOfMore(BufferedImage bufferedImage) { 9 QRCodeMultiRea

关于viewport引起的微信二维码识别区域偏移的问题讨论与解决

一.问题概述 在开发一个含有二维码的微信页面时,我遇到了这样一个问题:使用iPhone第一次进入该页面时,二维码可以长按识别,但第二次进入时长按无法识别到二维码.安卓机都能识别. 二.我进行了以下尝试: 移除控制进入条件的脚本,即部分第一次第二次,长按不能识别二维码.暂时排除脚本原因. 移除二维码所有样式,发现并不是不能识别到二维码而是识别区域发生了偏移.(图1) 移除所有元素,页面上只留一张二维码,发现识别区域变大.虽然整张图都被识别了但图片外面的区域也会被识别.(图2) 图1 图2阶段性结论