生成二维码的开源工具对比(附源码)

某天发现生成二维码的工具(zxing)运行的很慢,于是乎上网上寻找生成二维码的工具,发现常见的开源工具有如下三种:

  1. Zxing(zxing.dll)
  2. ThoughtWorks(ThoughtWorks.QRCode.dll)
  3. QrCodeNet(Gma.QrCodeNet.Encoding.dll)

选哪个好呢?那就自己手动比较一下吧。

首先就遇到一个大坑,为啥人家zxing的使用方式和自己的使用的不一样,后来才发现zxing.dll其实有俩版,一个416kb,一个200多kb。我们原来用的是200多kb的,效率比较慢,那就用416kb的比较吧

zxing有俩版,都叫zxing.dll,都是生成二维码的,可能作者还是一个人,但是使用方式和效率差距太大了,请认准416kb版本

1. 对被编码的内容长度的支持,如下表所示:

可以看出ThoughtWorks对于编码内容有长度限制(可以通过设置调整,但是还是很容易超长),基本已经被踢出局。)

2. 三种工具的执行效率

其中:twqr指ThoughtWorks,netqr指QrCodeNet。可以看出已经out出局的ThoughtWorks执行效率最快,而Zxing是QrCodeNet的2倍,但是时间都不是很长。而除了ThoughtWorks外另外俩个都会随被编码内容变长而增长。

3. 生成文件大小的比较:

文件大小QrCodeNet更小些,QrCodeNet甚至可以根据内容大小调整尺寸。而Zxing最大,不过Zxing的尺寸也是大于其他俩个的。

(zxing是设置象素大小,所以此处用于50x数值,因为只有100的倍数才能保证边框的设置和实际生成的边框大小相符;而ThoughtWorks和QrCodeNet设置数值,实际尺寸约是33x数值,和边框值有关)

4. 边框设置

该问题比较复杂,表格可以列很多,此处就概述下

  • ThoughtWorks默认不支持边框,所以他设置尺寸是:33x数值+1
  • QrCodeNet支持无边框,细边框,粗边框三种,所以设置的尺寸为:29x数值、33x数值、37x数值
  • Zxing尺寸和边框可以任意设置,所以zxing优先保证尺寸,至于边框是在满足尺寸之后才会考虑边框的大小,根据经验尺寸是100的倍数时边框支持的最好

5. 抉择

已经对比完成了,大伙觉得选哪个呢?如果非要选一个我更倾向于选Zxing。不过我更想告诉大家的是,谁也不选,而是做一个代理模式,对外暴漏的是自己的接口,底层你管我用的是谁呢,说不定明天我就换了一个更美更好的接口呢。

6. 我要带logo

二维码必须带logo,所以我从"诸葛风流"那偷来了源码,会放到附件上。附件中已经是做好了代理模式的源码,如果有用请点赞,用好请留言。

源码下载:http://xiazai.jb51.net/201701/yuanma/QRCreater_jb51.rar

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!

(0)

相关推荐

  • Java 生成二维码的工具资料整理

    1.  使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着  http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip 这个是日本人写的,生成的是我们常见的方形的二维码 可以用中文 如:5677777ghjjjjj 有朋友问我要这个图片生成的代码,我就在网上搜索然后整理了一个类,首先要把SwetakeQRCode的jar包qrcode.jar放在工程的编译路

  • 详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)

    在生活中有一种东西几乎已经快要成为我们的另一个电子"身份证",那就是二维码.无论是在软件开发的过程中,还是在普通用户的日常中,几乎都离不开二维码.二维码 (dimensional barcode) ,又称二维条码,是在一维条码的基础上扩展出的一种具有可读性的条码.设备扫描二维条码,通过识别条码的长度和宽度中所记载的二进制数据,可获取其中所包含的信息.相比一维条码,二维码记载更复杂的数据,比如图片.网络链接等. 今天介绍一种免费开源的二维码操作组件,ThoughtWorks.QRCode

  • SpringMVC+Mybatis二维码实现多平台付款(附源码)

    目录 整体思路: 基本流程和思路: 1.整体架构: 2.配置编译的文件目录 3.pom.xml 4.二维码相关属性(Model) 5.二维码生成代码 6.Controller相关代码 7.二维码相关参数初始化 总结: 今天,这篇文章就带你们简单实现多平台支付! 整体思路: 实现微信支付宝等支付平台合多为一的二维码支付,并且实现有效时间内支付有效,本人采用的框架是spring springmvc mybatis框架,maven管理.其实如果支付,不需要mybatis也能实现,代码和本人见解还需大神

  • 生成二维码的开源工具对比(附源码)

    某天发现生成二维码的工具(zxing)运行的很慢,于是乎上网上寻找生成二维码的工具,发现常见的开源工具有如下三种: Zxing(zxing.dll) ThoughtWorks(ThoughtWorks.QRCode.dll) QrCodeNet(Gma.QrCodeNet.Encoding.dll) 选哪个好呢?那就自己手动比较一下吧. 首先就遇到一个大坑,为啥人家zxing的使用方式和自己的使用的不一样,后来才发现zxing.dll其实有俩版,一个416kb,一个200多kb.我们原来用的是2

  • winform天气预报小工具(附源码下载)

    所以我们要添加web引用共两个 1.根据IP地址获取你所在城市(假如没有这个,而直接引用相关网站提供的webservice,你所在的地点可能不是很准确,假如,你用了路由器....等,不知道大家是有同感) 2.根据上一部获取的城市,调用获取天气数据的webservice 贴取部分代码: 复制代码 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;

  • c#实现一个超实用的证件照换底色小工具(附源码)

    前言 大家应该都遇到过,在工作和生活中经常要填写一些个人资料,这时候往往需要放证件照上去,但是有时候人家要求是红底或白底,但是偏偏不巧的是你以前照了张蓝底的.这时候你想换个底色,于是在百度上一搜"证件照换底色",出来了一堆photoshop 教程,程序员可以找公司美工帮个忙,但是一般人就很纠结了,所以呢我就花了半天的功夫写了一个小软件,简化大家的操作难度,哎!现在越来越发现会写点程序真好.O(∩_∩)O哈哈~ 实现思路 (1)首先说一下像素的组成RGB 当前展示白色的RGB值是255,

  • 利用java生成二维码工具类示例代码

    二维码介绍 二维条形码最早发明于日本,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在代码编制上巧妙地利用构成计算机内部逻辑基础的"0"."1"比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理. 如下为java生成二维码工具类,可以选择生成文件,或者直接在页面生成,话不多说了,来一起看看详细的示例代码吧. 示例代码 import java.aw

  • 基于python实现可视化生成二维码工具

    环境 pip install gooey pip install MyQR 源代码 from gooey import GooeyParser,Gooey from MyQR import myqr @Gooey(encoding='utf-8',program_name='二维码生成器',program_description='生成动态.彩色.黑白二维码',language='chinese') def main(): parser = GooeyParser(description="生成

  • 基于SpringBoot生成二维码的几种实现方式

    目录 一.基于Google开发工具包ZXing生成二维码 二.基于开源的Hutool工具生成二维码 本文将基于Spring Boot介绍两种生成二维码的实现方式,一种是基于Google开发工具包,另一种是基于Hutool来实现: 为了方便理解二维码的实际应用场景,举一些例子! (1)进销存系统 想必大家都听说过,其系统中的商品二维码承载了许多重要.核心的关键信息,比如商品编码.商品名称.规格.型号.单位.作用/使用说明等信息:操作者可以借助硬件设备,如“扫码枪”,通过扫描该二维码后将该商品录入到

  • 教你如何使用google.zxing结合springboot生成二维码功能

    目录 Zxing原生方式 添加依赖 二维码生成工具类 添加Controller 添加测试页面 Hutool的方式 添加依赖 创建QRCodeService 添加Controller 效果测试 我们使用两种方式,去生成二维码,但是其实,二维码的生成基础,都是zxing包,这是Google开源的一个包,第一种是使用原始的zxing方式去实现,第二种是使用hutool来实现,hutool其实也是对于zxing的一个封装,但是封装前后,确实比较简单了. Zxing原生方式 添加依赖 <!-- zxing

  • Android中使用ZXing生成二维码(支持添加Logo图案)

    ZXing是谷歌的一个开源库,可以用来生成二维码.扫描二维码.本文所介绍的是第一部分. 首先上效果图: ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing/releases 或者在这里下载(只有本项目所用的jar包,版本号:3.2.0):链接:http://pan.baidu.com/s/1pLqAR5x 1.生成二维码的工具类 /** * 二维码生成工具类 */ public class QRCodeUtil { /** * 生成二维码Bitmap

随机推荐