Zxing web解码带base64填充的阿兹特克代码,但3.4.0 jars没有发现条形码。

运行最新的java版本在图像上产生 “no barcode found”。

java -cp core-3.4.0.jar:javase-3.4.0.jar:jcommander-1.72.jar:jai-imageio-core-1.4.0.jar com.google.zxing.client.j2se.CommandLineRunner –try_harder .IMG.jpg file:/hometomProjectsmTicketingzxing_java.IMG.jpg: 没有找到条形码。

然而,使用网站 https:/zxing.orgwdecode。 和相同的图像产生。

eyJ2ZXJzaW9uIjoidGZpLjEiLCJhbGciOiJSUzI1NiIsImFjdCI6IjIwMjAtMDQtMjhUMDc6NTc6NDYrMDE6MDAifQ==。 eyJkdXIiOiJQVDkwTSIsIm9wIjoiQnVzIEVpcmVhbm4iLCJwciI6IlNpbmdsZSBKb3VybmV5IFRpY2tldCBBZHVsdCIsImZyb20iOiJDbGFyZWNhc3RsZSIsInRvIjoiU2hhbm5vbiBJbmR1c3RyaWFsIEVzdC4iLCJybiI6IjExMjE5IiwiYW4iOiJUb20gQnlybmUiLCJ1dG4iOiI2OTE2NDQzOC02M2RkLTRhY2YtOGZlNS01MjUyMjZmYjhmOTcifQ。 Aw_3tELIvR6EqatwR-QxwXC5V1F7Cznr0FfZkl8O8SIYzwcOyJ_coCqBs_2UKMghv0WVNAXikHmavMqLLEaug2H41ElFs48lBz8yEgsCsrbeau2AWDd14KixsfITx3rps9HqMf-aPxb5B3Dw6vYFh2Gnokb1Dhbqfhb1a5j5UJI.

但是,如果把JWT令牌中的头中的base64填充物去掉(’==’),并生成一个二维码,则网站和java代码都能成功解码条码。

我知道应该使用Base64Url,但为什么zxing网站能成功解码图像,而最新的jar文件却不能成功解码?

而且为什么填充会产生一个难以解码的图像?

解决方案:

所以,经过更多的研究,我很确定我注意到的问题与编码数据的长度和显示阿兹特克代码的设备的分辨率有关,与填充无关。

随着编码数据长度大小的增加,阿兹特克二维码的视觉复杂度也会增加。我发现,如果使用分辨率较低的设备,或者刻意将设备的屏幕分辨率设置为低,较复杂的代码就无法可靠解码。

ZXING网站和java代码之间存在一些差异,但我怀疑网站可能预置了一套解码提示。

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何设置一个含有TRUEFALSE或10个值的表?

2022-9-27 20:10:23

未分类

在React-Native中如何在屏幕上访问嵌套阵列中的嵌套对象JSON数据?

2022-9-27 20:21:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索