逐梦论坛's Archiver

shillan 发表于 2018-6-8 22:37

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

[p=30, 2, left]某天发现生成二维码的工具(zxing)运行的很慢,于是乎上网上寻找生成二维码的工具,发现常见的开源工具有如下三种:[/p][list][*]Zxing(zxing.dll)[*]ThoughtWorks(ThoughtWorks.QRCode.dll)[*]QrCodeNet(Gma.QrCodeNet.Encoding.dll)[/list][p=30, 2, left]选哪个好呢?那就自己手动比较一下吧。[/p][p=30, 2, left]首先就遇到一个大坑,为啥人家zxing的使用方式和自己的使用的不一样,后来才发现zxing.dll其实有俩版,一个416kb,一个200多kb。我们原来用的是200多kb的,效率比较慢,那就用416kb的比较吧[/p][p=30, 2, left](zxing有俩版,都叫zxing.dll,都是生成二维码的,可能作者还是一个人,但是使用方式和效率差距太大了,请认准416kb版本)[/p][p=30, 2, left]  1. 对被编码的内容长度的支持,如下表所示:[/p][p=30, 2, left][img=900,0]https://images2015.cnblogs.com/blog/715404/201701/715404-20170104125014894-1394471431.png[/img][/p][p=30, 2, left]  可以看出ThoughtWorks对于编码内容有长度限制(可以通过设置调整,但是还是很容易超长),基本已经被踢出局。)[/p][p=30, 2, left]  2. 三种工具的执行效率[/p][p=30, 2, left][img=900,0]https://images2015.cnblogs.com/blog/715404/201701/715404-20170104125313128-982764821.png[/img][/p][p=30, 2, left]其中:twqr指ThoughtWorks,netqr指QrCodeNet。可以看出已经out出局的ThoughtWorks执行效率最快,而Zxing是QrCodeNet的2倍,但是时间都不是很长。而除了ThoughtWorks外另外俩个都会随被编码内容变长而增长。[/p][p=30, 2, left]  3. 生成文件大小的比较:[/p][p=30, 2, left][img=900,0]https://images2015.cnblogs.com/blog/715404/201701/715404-20170104125716644-176177231.png[/img][/p][p=30, 2, left]文件大小QrCodeNet更小些,QrCodeNet甚至可以根据内容大小调整尺寸。而Zxing最大,不过Zxing的尺寸也是大于其他俩个的。[/p][p=30, 2, left](zxing是设置象素大小,所以此处用于50x数值,因为只有100的倍数才能保证边框的设置和实际生成的边框大小相符;而ThoughtWorks和QrCodeNet设置数值,实际尺寸约是33x数值,和边框值有关)[/p][p=30, 2, left]  4. 边框设置[/p][p=30, 2, left]该问题比较复杂,表格可以列很多,此处就概述下[/p][list][*]ThoughtWorks默认不支持边框,所以他设置尺寸是:33x数值+1[*]QrCodeNet支持无边框,细边框,粗边框三种,所以设置的尺寸为:29x数值、33x数值、37x数值[*]Zxing尺寸和边框可以任意设置,所以zxing优先保证尺寸,至于边框是在满足尺寸之后才会考虑边框的大小,根据经验尺寸是100的倍数时边框支持的最好。[/list][p=30, 2, left]   5. 抉择[/p][p=30, 2, left]已经对比完成了,大伙觉得选哪个呢?如果非要选一个我更倾向于选Zxing。不过我更想告诉大家的是,谁也不选,而是做一个代理模式,对外暴漏的是自己的接口,底层你管我用的是谁呢,说不定明天我就换了一个更美更好的接口呢。[/p][p=30, 2, left]  6. 我要带logo[/p][p=30, 2, left]二维码必须带logo,所以我从"[url=http://www.cnblogs.com/xiangzhong/p/5373822.html]诸葛风流[/url]"那偷来了源码,会放到附件上。附件中已经是做好了代理模式的源码,如果有用请点赞,用好请留言。[/p][p=30, 2, left][url=http://files.cnblogs.com/files/watermoon2/QRCreater.7z]我是源码,点我[/url][/p]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.