某天發現生成二維碼的工具(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,因此我從"諸葛風流"那偷來了源碼,會放到附件上。附件中已是作好了代理模式的源碼,若是有用請點贊,用好請留言。