某天发现生成二维码的工具(zxing)运行的很慢,因而乎上网上寻找生成二维码的工具,发现常见的开源工具备以下三种:html
选哪一个好呢?那就本身手动比较一下吧。工具
首先就遇到一个大坑,为啥人家zxing的使用方式和本身的使用的不同,后来才发现zxing.dll其实有俩版,一个416kb,一个200多kb。咱们原来用的是200多kb的,效率比较慢,那就用416kb的比较吧编码
(zxing有俩版,都叫zxing.dll,都是生成二维码的,可能做者仍是一我的,可是使用方式和效率差距太大了,请认准416kb版本)spa
1. 对被编码的内容长度的支持,以下表所示:代理
能够看出ThoughtWorks对于编码内容有长度限制(能够经过设置调整,可是仍是很容易超长),基本已经被踢出局。)htm
2. 三种工具的执行效率blog
其中:twqr指ThoughtWorks,netqr指QrCodeNet。能够看出已经out出局的ThoughtWorks执行效率最快,而Zxing是QrCodeNet的2倍,可是时间都不是很长。而除了ThoughtWorks外另外俩个都会随被编码内容变长而增加。接口
3. 生成文件大小的比较:get
文件大小QrCodeNet更小些,QrCodeNet甚至能够根据内容大小调整尺寸。而Zxing最大,不过Zxing的尺寸也是大于其余俩个的。源码
(zxing是设置象素大小,因此此处用于50x数值,由于只有100的倍数才能保证边框的设置和实际生成的边框大小相符;而ThoughtWorks和QrCodeNet设置数值,实际尺寸约是33x数值,和边框值有关)
4. 边框设置
该问题比较复杂,表格能够列不少,此处就概述下
5. 抉择
已经对比完成了,大伙以为选哪一个呢?若是非要选一个我更倾向于选Zxing。不过我更想告诉你们的是,谁也不选,而是作一个代理模式,对外暴漏的是本身的接口,底层你管我用的是谁呢,说不定明天我就换了一个更美更好的接口呢。
6. 我要带logo
二维码必须带logo,因此我从"诸葛风流"那偷来了源码,会放到附件上。附件中已是作好了代理模式的源码,若是有用请点赞,用好请留言。