生成二维码的开源工具对比(附源码)
发布时间 - 2026-01-10 22:18:27 点击率:次某天发现生成二维码的工具(zxing)运行的很慢,于是乎上网上寻找生成二维码的工具,发现常见的开源工具有如下三种:

- Zxing(zxing.dll)
- ThoughtWorks(ThoughtWorks.QRCode.dll)
- 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./201701/yuanma/QRCreater_jb51.rar
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# 二维码
# 开源
# 工具
# 使用开源工具制作网页验证码的方法
# 10款实用的PHP开源工具
# Java开源工具iText生成PDF简单实例
# 一个加密JavaScript的开源工具PACKER2.0.2
# 2019十大实用且重要的开源工具
# 的是
# 三种
# 自己的
# 可以看出
# 都是
# 我就
# 是在
# 来了
# 那就
# 才会
# 很容易
# 我用
# 可以通过
# 才发现
# 谁也
# 换了
# 做一个
# 象素
# 不支持
# 很长
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
微信小程序 配置文件详细介绍
如何为不同团队 ID 动态生成多个非值班状态按钮
Laravel如何升级到最新版本?(升级指南和步骤)
在Oracle关闭情况下如何修改spfile的参数
如何正确下载安装西数主机建站助手?
js实现获取鼠标当前的位置
手机网站制作与建设方案,手机网站如何建设?
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
linux写shell需要注意的问题(必看)
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Laravel怎么上传文件_Laravel图片上传及存储配置
如何挑选优质建站一级代理提升网站排名?
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
中山网站推广排名,中山信息港登录入口?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
如何彻底卸载建站之星软件?
昵图网官方站入口 昵图网素材图库官网入口
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何在腾讯云服务器快速搭建个人网站?
Laravel如何实现API版本控制_Laravel版本化API设计方案
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
如何用5美元大硬盘VPS安全高效搭建个人网站?
网站建设保证美观性,需要考虑的几点问题!
如何用西部建站助手快速创建专业网站?
5种Android数据存储方式汇总
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
javascript基本数据类型及类型检测常用方法小结
如何解决hover在ie6中的兼容性问题
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
详解Huffman编码算法之Java实现
Laravel如何保护应用免受CSRF攻击?(原理和示例)
怎样使用JSON进行数据交换_它有什么限制
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
C++用Dijkstra(迪杰斯特拉)算法求最短路径
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
制作旅游网站html,怎样注册旅游网站?
如何在 React 中条件性地遍历数组并渲染元素
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
如何在阿里云高效完成企业建站全流程?
上一篇:《艺术头条》发布作品方法
上一篇:《艺术头条》发布作品方法

