开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 25927|回复: 144
打印 上一主题 下一主题
收起左侧

[2021开源大赛(第六届)] 基于zxing-cpp封装的本地二维码生成及识别

  [复制链接]
结帖率:100% (1/1)
跳转到指定楼层
楼主
发表于 2021-11-5 20:56:00 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   江苏省连云港市
由于做项目需要用到二维码识别相关功能,论坛搜了一圈,识别功能只找到了一个基于zxing的封装,无奈作者只封装了识别部分,并没有封装二维码生成功能,还有其他也有一些林林总总的模块,或多或少都有一些问题,比如不支持中文,不能识别微信二维码,不支持图片矫正等问题,最主要好巧不巧都不同时具备二维码生成和识别功能,于是只好自己封装个凑活先用了,顺便来开源大赛凑个热闹,望坛友们多多支持
zxing-cpp项目地址  https://github.com/nu-book/zxing-cpp


直接上代码

  
DLL命令名返回值类型公开备 注
QrEncode逻辑型 
DLL库文件名:
zxing.dll
在DLL库中对应命令名:
@QrEncode
参数名类 型传址数组备 注
text文本型
filePath文本型二维码图片路径,支持jpg\png
width整数型二维码图片宽度
height整数型二维码图片高度
margin整数型二维码图片白边宽度
eccLevel整数型纠错级别0-8,-1默认
DLL命令名返回值类型公开备 注
QrDecode文本型 
DLL库文件名:
zxing.dll
在DLL库中对应命令名:
@QrDecode
参数名类 型传址数组备 注
filePath文本型二维码图片路径
angleEscape逻辑型Escape解码


  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 请在本子程序中放置易模块初始化代码
_临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
_临时子程序  
' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
调试输出 (QrEncode (“你好,易语言!”, 取运行目录 ()“\helloe.png”, 500, 500, 20, 8))
调试输出 (QrDecode (取运行目录 ()“\weixin.png”, ))


i支持库列表   支持库注释   
spec特殊功能支持库


dll及示例

Demo.zip (807.29 KB, 下载次数: 707)

zxing-cpp集成dll项目的解决方案,可直接编译(vs2019)文件太大,上个网盘链接


https://share.weiyun.com/jRxf9UGq







备份:
链接: https://pan.baidu.com/s/1AWwR-vW185jh_Ki-MW1YrQ 提取码: njc7




补充内容 (2021-11-6 22:27):
小更新以下,感谢6、7楼建议,
二维码创建支持返回字节集
二维码识别支持传入字节集,并返回坐标
进一步简化封装,详见指定楼


补充内容 (2021-11-6 22:32):
错别字!!!!详见置顶楼

补充内容 (2021-11-6 22:34):
不能编辑帖子好麻烦!!!!新版下载也在置顶楼 !!!!!!

QQ截图20211105201337.png (24.29 KB, 下载次数: 62)

QQ截图20211105201337.png

点评

666666666666666666666   广东省广州市  发表于 2023-5-29 23:57
不能运行的下载,微软常用运行库:https://sn36.lanzouw.com/iKaksu46o8h 密码:52pj   广东省深圳市  发表于 2021-11-7 00:44
多线程安全否?   广东省深圳市  发表于 2021-11-6 11:22

评分

参与人数 18好评 +15 精币 +33 收起 理由
胡小星 + 1 + 2 感谢感谢,好人一生平安。
筱洛洛 + 1 + 2 支持开源~!感谢分享
kyo9766 + 1 感谢分享,很给力!~
10432649 + 1 + 1 支持开源~!感谢分享
空竹 + 1 + 3 开源精神必须支持~
木小果 + 1 + 3 感谢分享,很给力!~
离几尺┏╮ + 1 XP 32位 请问需要安装什么运行库
ghost12 + 1 支持开源~!感谢分享
飞宇 + 1 + 2 多线程调用OK不
洪兴鸡哥 + 1 支持开源~!感谢分享
易语言资源网 + 1 + 5 支持开源~!感谢分享
夜的静night + 1 + 2 感谢分享,很给力!~
梦° + 1 + 2 支持开源~!感谢分享
zhangjun1314 + 1 + 1 感谢分享,很给力!~
冰点 + 1 + 4 感谢分享,很给力!~
怡君大哥 + 1 感谢分享,很给力!~
已注销541904 + 1 + 2 新技能已get√
xh1020 + 1 + 1 感谢分享,很给力!~

查看全部评分

本帖被以下淘专辑推荐:

结帖率:100% (1/1)

签到天数: 2 天

来自 18楼
 楼主| 发表于 2021-11-6 22:31:39 | 只看该作者   江苏省连云港市
小更新以下,感谢6、7楼建议,
二维码创建支持返回字节集
二维码识别支持传入字节集,并返回坐标
进一步简化封装,详见置顶楼


Demo2.zip (632.67 KB, 下载次数: 833)


  
窗口程序集名保 留  保 留备 注
IQrcode  ZXing
子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用

子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
EncodeToFile逻辑型 成功返回真 失败返回假
参数名类 型参考可空数组备 注
text文本型二维码文本内容
filePath文本型二维码图片路径,支持jpg\png
width整数型二维码图片宽度
height整数型二维码图片高度
margin整数型二维码图片白边宽度
eccLevel整数型纠错级别0-8,-1默认
width = 选择 (是否为空 (width), 500, width)
height = 选择 (是否为空 (height), 500, height)
margin = 选择 (是否为空 (margin), 20, margin)
eccLevel = 选择 (是否为空 (eccLevel), -1, eccLevel)
返回 (QrEncodeToFile (text, filePath, width, height, margin, eccLevel) > 0)
子程序名返回值类型公开备 注
EncodeToMemory字节集 成功返回PNG图片数据 失败返回{}
参数名类 型参考可空数组备 注
text文本型二维码文本内容
width整数型二维码图片宽度
height整数型二维码图片高度
margin整数型二维码图片白边宽度
eccLevel整数型纠错级别0-8,-1默认
变量名类 型静态数组备 注
png字节集 
len整数型 
width = 选择 (是否为空 (width), 500, width)
height = 选择 (是否为空 (height), 500, height)
margin = 选择 (是否为空 (margin), 20, margin)
eccLevel = 选择 (是否为空 (eccLevel), -1, eccLevel)
png = 取空白字节集 (20480)
len = QrEncodeToMemory (text, png, width, height, margin, eccLevel)
如果 (len > 0)
返回 (取字节集左边 (png, len))
返回 ({ })

子程序名返回值类型公开备 注
DecodeFromFile文本型 返回识别的二维码文本内容
参数名类 型参考可空数组备 注
filePath文本型二维码图片路径
angleEscape逻辑型Escape解码
postionPosition二维码区域坐标
返回 (QrDecodeFromFile (filePath, angleEscape, postion))
子程序名返回值类型公开备 注
DecodeFromMemory文本型 返回识别的二维码文本内容
参数名类 型参考可空数组备 注
imageData字节集二维码图片路径
angleEscape逻辑型Escape解码
postionPosition二维码区域坐标
返回 (QrDecodeFromMemory (imageData, 取字节集长度 (imageData), angleEscape, postion))

点评

手动编译源码报错 说少一个Lib文件 能教教怎么解决么   湖北省武汉市  发表于 2021-11-9 11:07
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 9 天

141
发表于 7 天前 高大上手机用户 | 只看该作者   河北省沧州市
太厉害了正好需要
回复 支持 反对

使用道具 举报

签到天数: 9 天

140
发表于 2025-4-26 17:27:24 | 只看该作者   新疆维吾尔自治区乌鲁木齐市
6666666666666666666666
回复 支持 反对

使用道具 举报

139
发表于 2025-4-10 20:22:12 | 只看该作者   河北省邢台市
测试了一下 不错 简单实用
回复 支持 反对

使用道具 举报

138
发表于 2025-4-10 13:00:04 | 只看该作者   浙江省湖州市
有需要,下下来看看
回复 支持 反对

使用道具 举报

签到天数: 3 天

137
发表于 2025-3-15 22:05:00 | 只看该作者   福建省泉州市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:20% (1/5)
136
发表于 2025-2-23 16:13:49 | 只看该作者   浙江省宁波市
666666666666
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 5 天

135
发表于 2025-2-19 16:51:23 | 只看该作者   广东省江门市
DLL计次循环测试..有严重内存溢出...内存爆涨
回复 支持 反对

使用道具 举报

结帖率:88% (44/50)

签到天数: 10 天

134
发表于 2025-2-15 21:22:00 | 只看该作者   河北省保定市
奇奇奇奇奇 发表于 2025-1-23 14:15
在吗亲,太好用了,这个怎么给文字放进去, 可以付费

还需要吗亲
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)
133
发表于 2025-1-23 14:15:42 | 只看该作者   山东省淄博市
在吗亲,太好用了,这个怎么给文字放进去, 可以付费
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表