问题标签 [aztec-barcode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 需要帮助解压缩存储在 Aztec 条码中的 zlib 数据(Deutsche Bahn Ticket)
前提
我正在尝试从 Deutsche Bahn(德国铁路)发行的车票上当前使用的条形码格式中解码数据。我发现这个非常有用的网站(德语)已经做了类似的事情并提供了一个python 脚本。
该网站声明数据是用 压缩的zlib
,生成的 blob 是用 DSA 签名的,所有这些都存储在条形码(Aztec 格式)中。
此类条形码的示例
问题
我已使用网站上提供的脚本成功解码票证。安装了 python-pyasn1 库。读取条形码(按照说明使用BCTester,在 NeoReader 应用程序中遇到了一些问题)并将结果转换为十六进制。将十六进制数据保存为纯文本文件(出于某种原因,脚本需要)并使用脚本解析文件。有效。
但是脚本做的太多了。我想自己进行解析,但我无法让 zlib 解压缩工作,而且我对代码的理解很少,无法理解它。我几乎不知道 Python。不过,我有一些编程经验。
如果单纯看条码中的数据,是这样的: https ://gist.github.com/oelna/096787dc18596aaa4f5f
第一个问题是: 什么是 DSA 签名,我需要先将其从实际压缩数据中分离出来吗?
第二个: 一个简单的python脚本会是什么样子,它从文件中读取条形码blob并简单地解压缩它,这样我就可以进一步解析格式。我有一些想法,比如
但它不起作用。任何正确方向的提示将不胜感激。
这是脚本可以读取的十六进制数据(如果保存到文件):
更新/解决方案:
Mark Adler 的建议让我走上了正轨。我花了几个小时,但我为这个特殊问题拼凑了一个可行的解决方案。如果我更聪明一点,我会识别出78 9C
偏移量 68 处的 zlib 标头。此时只需拆分数据,后半部分就会毫无怨言地解压缩。被警告,非常悲伤python
如果有一个简单的解决方案,请随时发表评论。我将继续在这方面做更多的工作,并尝试使其成为一个更强大的解决方案,主动寻找 zlib 标头,而不对偏移量进行硬编码。前半部分是标识符代码,如#UT010080000060,
,后跟ASN.1
DSA 签名,幸运的是我不需要验证或修改。
python - Python-zxing 解码返回空数据
我试图通过 Python-zxing 解码 qr 或 aztec 代码数据。每次我在 python Shell 中得到空数据而没有任何错误。我做错了什么?
输出:
蟒蛇版。2.7.11 (Windows)
PS 当我从 cmd 运行脚本时,我有消息:
线程“主”java.lang.NoClassDefFoundError 中的异常:com/google/zxing/client/j2se/CommandLineRunner
ios - 通过 AVMetadataMachineReadableCodeObject 从 Aztec 条码读取原始字节会产生意外结果
一段时间以来,我一直在为 Deutsche Bahn(德国铁路)使用的一种特殊条形码开发 iOS 阅读器应用程序。它是连接 DSA 签名字符串和 zlib 压缩负载的 Aztec 条形码的变体。
当我了解到AVMetadataMachineReadableCodeObject
没有公共方法可以读取条形码中包含的原始字节并且字符串方法总是使 zlib 压缩数据出现乱码时,我陷入了困境。
幸运的是,这个答案让我朝着正确的方向前进。可以使用 KVO 访问(私有)字节,因为我目前不希望在 App Store 上分发该应用程序,所以这是完美的。
正如您在示例代码中看到的那样,尽管我几乎不存在Swift
和Objective-C
知识,但我还是设法让它工作。但是存储在条形码中的字节NSData
与预期结果不匹配!我怀疑我使用的 zlib 库(DeflateSwift)不起作用,所以我构建了一个测试用例,它运行良好。
我的问题是:我做错了什么?我是否需要进一步处理原始字节以获得预期结果(见下文)?存储在 中的字节到底有多原始AVMetadataMachineReadableCodeObject
?谁能指出我正确的方向?任何帮助表示赞赏。
这是我的代码(这是Swift
和的可悲混搭Objective-C
)
这就是我得到的
从返回的字节AVMetadataMachineReadableCodeObject
是
40 B4 FA 88 89 8A 88 88 98 E6 3E 20 09 10 0A 0E EF 25 ED AC DE C8 80 5A 6F 9D 21 9F 4A 6D 61 33 19 F3 12 10 8A 80 2B F0 C2 7C CE E0 AB 83 46 AF A6 42 79 FD E8 35 D4 8B 0B 00 00 00 00 03 13 3B A3 47 8E A9 C2 B4 DC 30 03 C2 89 32 8D A3 B0 D4 E6 2B 35 5B 7B 08 88 12 A0 AA A2 00 8E 22 20 31 95 10 1C 21 2A FF 78 2C BE 31 1B A2 12 B5 CF A3 87 9B 9B 59 EF 7B BC AC AE CA 88 C8 1C 02 E8 D2 B5 87 76 0D 93 77 8B FB 04 A2 B5 D1 F8 9A 67 D5 55 15 DA 61 13 91 EC 08 60 2D 9B 86 E1 94 35 C3 D8 A9 49 41 5B 3A 7C 59 A5 FD 9A E3 FE F8 3C 9F 3F 7B B2 59 DC 98 E3 5E 92 CC C0 21 11 EC AF BA D7 F4 5D DB FC BD A5 CA AF 99 08 28 E3 02 30 06 20 A8 00 88 43 8E A2 58 2D 87 24 33 40 18 C1 AE 50 04 08 91 7E 59 E1 F6 9B 87 E7 8A 67 AA 1B 3E FF FE EF 79 46 18 5A 23 03 B4 E9 1A 4F 2F 15 EA DC 46 F5 A9 67 AE B8 F7 16 0B F2 38 8B B3 96 35 34 AB D3 A6 0E 6C 77 9D 72 D5 85 7E 58 0B E0 25 69 2C AC 42 9C 13 0F 27 4F 13 72 4A 90 CB 1C ED 78 B3 60 F4 AD 4C FE 2B F4 51 A8 0D 60 CC DF 78 C7 65 78 CC E6 63 02 45 B1 F3 1F A8 ED 9E FE 63 00 00 00 00
这就是我需要的
当使用适当的条形码阅读器(我使用 bcTester 5)进行扫描时,会产生以下字节:
23 55 54 30 31 30 30 38 30 30 30 30 30 31 30 2C 02 14 1C 3D E9 2D CD 5E C4 C0 56 BD AE 61 3E 54 AD A1 B3 26 33 D2 02 14 40 75 03 D0 CF 9C C1 F5 70 58 BD 59 50 A7 AF C5 EB 0A F4 74 00 00 00 00 30 32 37 31 78 9C 65 50 CB 4E C3 30 10 E4 53 2C 71 43 4A D9 F5 2B 36 B7 84 04 52 01 55 51 40 1C 51 01 23 2A 42 0E 21 15 3F C7 8D 1F 63 36 11 52 2B 7C F1 78 76 76 66 BD F7 8F 4D 5D 54 C4 44 CE 10 05 D2 EB 78 5B AC 32 7B B4 77 C8 11 6B 62 C7 D6 79 AA EA AA 16 E1 B2 22 4D C4 01 AD 36 58 61 CA 6B 30 C6 E5 64 A0 B6 97 0F A6 A9 6F D6 71 DF C7 CF 3E 7F 37 93 66 8E C6 71 DE 92 4C C0 E1 22 0D FD 57 7A CB EE B6 CF EF 69 54 FD 66 44 05 31 D0 03 18 01 05 40 04 70 9C 51 46 AD 38 49 33 00 86 20 DD 42 88 04 22 5F A6 A1 DB F6 78 79 D4 79 95 76 1F 3F DF FD E7 98 86 16 B1 30 0B 65 D6 3C BD 2A 15 CE D8 AB E5 79 9D 47 7B DA 34 13 C7 34 73 5A 6B 0B 35 72 D9 5C 0D BB AE 53 AA E8 5F 86 B4 01 E9 25 8D 0D 50 8E 72 3C 39 3C B2 13 94 82 74 CE 2D C7 B3 41 8B ED 4C 9F F5 0B E2 85 6C 01 8C FE C7 B8 E9 87 8C D9 F1 90 28 A3 73 FE 05 6D DE 5F F1
如您所见,在偏移量 68 ( 78 9C
) 处开始一个有效的 zlib 流。如果您在此处拆分数据并膨胀 zlib 数据,它会返回如下字符串:
U_HEAD01005300802P9QAN-40501201514560DEDE0080ID0200180104840080BL020357031204GW3HEMP906012015060120151021193517S0010018Fernweh-Ticket natS00200012S0030001AS00900051-0-0S01200010S0140002S2S0150006BerlinS0160011NeumünsterS0210038B-Hbf 8:16 ICE794/HH-Hbf 10:16 IC2224S0230013Krull AndreaS026000213S0270019***************0484S0280013Andrea#Krull S031001006.01.2015S032001006.01.2015S035000511160S0360003271
测试 NSData
如果我使用从 bcTester 返回的字节手动构建字节数组,一切都会按预期进行,并且 zlib 数据会正确膨胀。这是我的测试方法:
zpl - 增加 Aztec 条码大小
我正在尝试将Aztec
条形码缩放到5"x5.5"
标签,但默认Aztec
编码器不会创建任何大于 about 的条形码0.25"x0.25"
。
我怎样才能扩大规模?
我的代码如下:
javascript - 如何生成 Aztec 二维条码
我正在尝试实现一个功能,该功能将在给定一些输入的情况下生成 Aztec 2D 条形码,并在网页上呈现 2D 条形码,以便人们可以打印出来。
我四处搜索,找到了一些我可以使用的第 3 方 Java 库。
但我的问题是:我正在尝试实现的这个功能,是否可以在前端呈现,比如使用 Javascript 生成条形码;还是我应该使用 3rd 方库来编写 Java 代码并生成条形码?如果两者都有,哪种方式更好,为什么?
我对此很陌生;任何建议将不胜感激!
android - 无法正确编码阿兹台克代码
我正在尝试在zxing的帮助下为 android 应用程序创建一个带有有效负载的 aztec 代码。但是,在将其输入 aztec 生成器后,我无法在扫描条形码后读取此有效负载。链接到 zxing的阅读器解码完全不同的条形码有效负载。
有没有其他人看到这个问题?还是我错误地生成了 Aztec 代码?
谢谢您的帮助
条形码_有效负载:
i¼\u0000\u0003\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000)X“}ôZv\u0002ô\u0000\u0000˜\u0012\u0012äNMGX†Ô\u0000\u0001Zv\u0002ô05\u0002\u0018T 64\u0011k\u0007m[\u000f瓉¿RÙƒ¨<úýá‹M\u0002\u0019\u0000 ɼÏØ\u0010Ë¢\u0003d·ã Í\u000bÚæ? Ÿ#+\u0017˜\u0000
代码:
java - 在 Android 应用程序中扫描大的 Aztec-Codes
我正在尝试在我的 android 应用程序中扫描大的阿兹台克代码。这里的首选当然是 Zxing,因为它免费且易于集成。
问题是,Zxing 在扫描更大的阿兹台克代码时失败了。大于 71x71 模块的符号几乎每次都会失败。github上有几个问题,但没有人可靠地解决过这个问题,而且我没有这样做的知识。
我的问题是,这里是否有人知道一个简单的、lib 或应用程序来与扫描更大的阿兹台克代码(例如 UIC 火车票)可靠的意图集成?是的,它应该是免费的,或者至少应该有一个更便宜的选择,因为这只是为了试验和尝试一些东西——我可以想象为开发者许可证支付大约 200-300 美元,但不是超过 2,000 美元,这超过一年!
这意味着 NeoReader - 以及它使用 aztec 代码 - 超出了我的范围,以及 Leadtools SDK。
有没有人知道这个问题的解决方案,或者你认为这是不可能的?
问候
decode - Aztec 条码解码
我很难解码以下 Aztec 条形码:
https://i.stack.imgur.com/TUt0p.png
我已经尝试过所有流行的应用程序,包括 NeoReader。我得到的解码如下:
UT011186000010, eè�FWà Ü�r�¦�iI ;)���Ä� s�g´!iZä|30206xÚU�ÍjA�_Ås@¬îùÉÌQ1!`v9É�]4DgÃf/¾}º�M¾¦ª«ÚãËv �@�3DÁ·)½Fo9<ûÅ}8Â2(@Æv¹/í±Ù¯?ÄÄ���²P�<�Ý�S7\¿�qÃÒV³&À¢âîvé¾N群£ºµ¯àV5Ò0U¹Þ�Büz�ØÉÏÚ �!OS.ùó�Ç¡/?ÃXàI#ký�Þ�-c�7vöøÞJéI(ÎÉÙ9yü£ U�Ì{�þÇõKÂ
因为我在丹麦,所以我想本文中的某些字母可以是丹麦语:Æ、Ø 或 Å。然而,其余的是通常的拉丁字母,所以它应该正确解码,但它没有。我只想知道条形码是什么意思。
提前致谢
qr-code - 是否有检测方向的 QR 码/条形码 API?
我看到 Google Barcode API 并想使用 QR 码。但我希望能够检测它是正面朝上、旋转 90 度、180 度还是 270 度,并将它们计为 4 个不同的值。
我不认为这个 API 支持方向。有没有这样做的?
我想将其构建到 iOS 和 Android 应用程序中。
如果它不使用二维码,它可能是别的东西,但最好是方形的,不像宽条码。
zxing - zxing 和 Aforge aztec 条码读取
当我从物理路径读取图像时它可以工作。但是当我将网络摄像头的当前帧分配给currentBitmapForDecoding
它时,unabel 可以读取 AztecBarcode.pls
任何人如何帮助我从网络摄像头读取 aztec 条形码。我也使帧尺寸变小但不起作用。