Closed Byxs20 closed 6 months ago
感谢建议,这个库看起来确实不错。
简单试了一下,它的Release版本依赖 numpy 。有人提交了pr,去除numpy依赖,不过需要自己编译。等有空了再看看
Mask一下
https://github.com/zxing-cpp/zxing-cpp/issues/283
https://github.com/zxing-cpp/zxing-cpp/pull/615
我十分喜爱作者的软件,这个功能其实对我来说可有可无我已经build了zixng-cpp的exe了,但是感觉这个库效果较好的,所以推荐一下!如果实现不复杂,期待作者您的更新!
我试着build了一下,没有成功,应该是我当前系统的gcc环境有点问题。
如果你有兴趣的话能否帮我build一下,目标版本 Python 3.8.10 Windows x64 。
https://github.com/zxing-cpp/zxing-cpp/blob/master/wrappers/python/README.md
即用 python setup.py install
安装到自己python环境,然后将装好的包提取出来,测试一下能否在py嵌入式环境中使用(比如扔到UmiOCR-data/site-packages
里,尝试import调用)。如果可以,发个压缩包上来
我也没有build出来pyd文件,下面这个文件是我pip wheel zxing-cpp 得到的,所以还是依赖numpy,估计对您帮助估计不大
zxing_cpp-2.1.0-cp38-cp38-win_amd64.zip
我build的命令是在zxing-cpp目录中 python .\wrappers\python\setup.py install
如果我在 \zxing-cpp\wrappers\python
目录中去build的话,直接报错
找不到这个文件,然后我也不太会解决了
基本写完了,感兴趣的话 帮我测试下吧。
项目开发部署见 这里 ,很容易的。
二维码解析相关的代码在: QRcode.py#L41
同一文件的第74行有个 TODO ,因为我不熟悉非文本的二维码格式,所以是简单的转为base64。如果你有更好的做法欢迎PR
1.测试了部分码:
2.其他码类型也能正常解析(代码我修复了,已经给您提交了pr):
pr链接:#50 这样使用base64的手段,我觉得也挺好的!
常用的包含非ASCII文本的QR码实际上都是Binary/Bytes模式,读取raw data后用UTF-8解码,很难想象一个能正常对应大部分日常QR码的解码器会不支持Binary mode,我想 @Byxs20 表达的意思是不是解码器无法直接输出raw data?这个对日常应用并没有太大必要,和正常的解码逻辑一起给出反而容易造成误解(比如会把正常的中文内容当成raw data解码出UTF-8编码的原始数据),建议可以作为非默认的选项供有需求的用户选择使用。
@DemonStarAlgol
把正常的中文内容当成raw data解码出UTF-8编码的原始数据
这个请放心,不会的。当前版本中,并不是以ASCII
来判断文本,而是ZXing提供的content_type
属性:
content_type <class 'zxingcpp.ContentType'>: ContentType.Text
Binary <class 'zxingcpp.ContentType'>: ContentType.Binary
GS1 <class 'zxingcpp.ContentType'>: ContentType.GS1
ISO15434 <class 'zxingcpp.ContentType'>: ContentType.ISO15434
Mixed <class 'zxingcpp.ContentType'>: ContentType.Mixed
Text <class 'zxingcpp.ContentType'>: ContentType.Text
UnknownECI <class 'zxingcpp.ContentType'>: ContentType.UnknownECI
故只要属性为 Text
,均以utf-8解码为文本内容,其它格式再尝试输出raw data。应该不会对普通用户造成误解。
问题: dev 20231105 目前新版本就无法去识别binary的二维码,其实对于一般用户来说并不重要,但是还是希望软件能够更加强壮一些!
建议: 你好,给你提一个小小的建议就是关于二维码的方面,看你使用的库是pyzbar,这边有一个更好的替代库。 仓库地址:https://github.com/zxing-cpp/zxing-cpp Python调用demo:https://github.com/zxing-cpp/zxing-cpp/blob/master/wrappers/python/README.md 在线测试网站:https://zxing-cpp.github.io/zxing-cpp/demo_reader.html
列举一些优点: 1.可以成功读取binary的二维码(对于您的软件目前的问题:可能你要想一下如何处理Binary类型的二维码,zxing-cpp是可以识别二维码的类型,所以您能够拥有判断依据,如果是binary类型有不可见字符时候可以输出16进制之类的) 2.可以成功读取无边框的二维码 3.比pyzbar能够更好的读取(有些时候二维码不放大一下,pyzbar就读取不到) 4.支持的码类型也不少,您可以查阅一下。
当然这个只是我个人的使用感觉,有时间您可以试试看,希望能够让该软件效果越来越好,望采纳!