.NET 下二维码解决方案
使用Zint和Zxing实现二维码的编码与解码(Using open-source tools to generate and decode Q-R code)
1.Zint生成二维码
http://sourceforge.net/projects/zint/
【1】从上述站点下载Zint工具
【2】安装Zint工具
【3】使用Zint工具生成二维码,注意选择类型,并输入要生成的文本,此处我输入的是Hello World,Everyone!

【4】保存Q-R二维码图像
这样我们的Q-R二维码图像就保存成功了【保存为hello.png】。
2.使用Zxing进行解码
Zxing是大名鼎鼎的条码处理开源项目,提供了多个平台上各种标准条形码的生成与解码工具。
Zxing提供了Android,Java,IPhone,Objective-C,C++,Jruby,Qt, .NET等各个平台库,其内容十分庞大,这里就不主要介绍了。下面,我们利用Zxing提供的JRuby项目进行简单的解码操作,把刚才生成的二维码图片作为输入,看看能否得到预期的输出。
【1】安装JRuby
由于Zxing原生于Java,因此它提供的库是JRuby版本的,于是先安装JRuby。(之所以选用JRuby是因为它比较轻量级,简单好用)
http://jruby.org/ 安装JRuby非常简单,只需3步:
(1)下载Jruby zip包
(2)解压JRuby
(3)将Jruby下bin目录所在路径加入PATH环境变量
(4)完成(在cmd中输入jruby -v测试是否安装成功)

【2】安装Zxing for ruby
https://github.com/ecin/zxing.rb
打开cmd,输入jruby -S gem install zxing等待数秒,jruby会为我们装好zxing。此时,我们就可以在ruby代码中import zxing了!
【3】编写解码程序
解码程序非常简单,在刚才保存图片的文件夹下新建一个ruby文件【1.ruby】,程序代码只需3行:
1 require 'zxing'
2
3 result = ZXing.decode 'hello.png'
4
5 puts result
简单的说,就是调用Zxing中的decode方法,输入参数为同目录下的“hello.png"文件,并将输入保存在result中。
【4】执行解码程序
打开cmd,执行jruby 1.rb,其输出结果果然和我们输入时相同。

3.基于.NET的简单编解码工具
【1】下载Zxing.NET工具
http://zxingnet.codeplex.com/releases/view/117068
下载后,将其解压到任意位置,我们之后会用到其中的dll文件。
【2】在VS2013中建立winForm应用程序

【3】添加引用
添加引用时,请注意对应版本!!!选择对应版本的zxing.dll,将其加入到引用当中。


【4】设计GUI界面
这里就展示一下,详细请下载工程代码(附件)
(1)输入文本,点击Generate,生成QR-Code
(2)点击Save,选择路径,保存QR-Code
(3)点击Decoding,选择相应的QR-Code文件,解码QR-Code,并将文本显示在Result中!

【5】编码
核心代码1:生成QR-Code

核心代码2:解码QR-Code

【6】功能展示
(1)生成QR-Code
输入Hello World!点击Generate!

(2)保存QR-Code


(3)解码QR-Code
这次我们选择最开始我们利用Zint生成的hello.png,看看能否获得同样的结果。

我们看到,结果与JRuby输出的结果相同。
【7】最后项目源码分享,欢迎进一步探讨,Thank you for your support!
转载自:http://www.cnblogs.com/Kassadin/p/4534952.html
.NET 下二维码解决方案的更多相关文章
- Android下二维码的扫描
Android平台下 二维码的扫描一般采用: Zxing:参考地址 Zxing功能比较强大,支持条形码和二维码的扫描,用的人也比较多,但是Zxing太大,一般开发简单的app,用起来比较麻烦. 所以网 ...
- 有关python下二维码识别用法及识别率对比分析
最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...
- mac版微信web开发者工具(小程序开发工具)无法显示二维码 解决方案
微信小程序概念的提出,绝对可以算得上中国IT界惊天动地的一件大事,这可能意味着一场新的开发热潮即将到来, 我也怀着激动的心情准备全身心投入其中,不过截止目前,在官方网站上下载的最新版本都无法使用,打开 ...
- 【转】mac版微信web开发者工具(小程序开发工具)无法显示二维码 解决方案
转自:https://www.cnblogs.com/stevenluo/p/6030445.html 微信小程序概念的提出,绝对可以算得上中国IT界惊天动地的一件大事,这可能意味着一场新的开发热 ...
- ios7下二维码功能的实现
苹果公司升级到IOS7后自己的PassBook自带二维码扫描功能,所以现在使用二维码功能不需要在借助第三方库了 使用前请先导入AVFoundation.frameWork // // YHQView ...
- Lazarus的二维码解决方案
不解释,直接上图
- 【转】Android平台下利用zxing实现二维码开发
http://www.cnblogs.com/dolphin0520/p/3355728.html 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描 ...
- Android平台下利用zxing实现二维码开发
Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...
- (转载)Android平台下利用zxing实现二维码开发
Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...
随机推荐
- Ubuntu samba 安装与配置 实现windows和虚拟机中的Ubuntu共享文件
2. 安装sumba服务 sudo apt-get install samba samba-common 这里出现了小问题, Ubuntu上安装samba不能安装的问题,“下列的软件包有不能满足 ...
- ArcGis API for JavaScript学习——离线部署API
ArcGis API for JavaScript开发笔记——离线部署API 以3.18版API为例: 在加载图图前引用GIS服务是必须的.有两种方法,一是在线引用,而是离线部署引用. 在线引用: & ...
- BFS:Nightmare(可返回路径)
解题心得: 1.point:关于可以返回路径的BFS的标记方法,并非是简单的0-1,而是可以用时间比较之后判断是否push. 2.queue创建的地点(初始化问题),在全局中创建queue在一次调用B ...
- mysql插入、修改、删除
联合查询: union:合并.联合,将多次查询结果合并成一个结果 语法: 查询语句1: union[all] 查询语句2: union [all] ... 意义 1.将一条比较复杂的查询语句可拆分成多 ...
- 关于html头部引用(meta,link)
/*这一段头部表示 如果安装了GCF,则使用GCF来渲染页面,如果为安装GCF,则使用最高版本的IE内核进行渲染.*/<meta content="IE=edge,chrome=1&q ...
- WCF,WebServices,WebApi区别
http://www.cnblogs.com/hetring/p/4493137.html
- 【Clone Graph】cpp
题目: Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. ...
- Python+Selenium框架设计篇之-简单介绍unittest单元测试框架
前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unit ...
- linux常用的日志分析脚本
linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...
- OgnlValueStack 源码
/* * Copyright 2002-2006,2009 The Apache Software Foundation. * * Licensed under the Apache License, ...