【问题标题】:Using multiple QR codes to encode a binary image使用多个二维码对二值图像进行编码
【发布时间】:2019-01-24 04:58:36
【问题描述】:

我越来越多地考虑使用 QR 码来传输二进制信息,例如图像,因为似乎每当我演示我的应用程序时,它都会发生在 WiFi 或 3G/4G 无法正常工作的情况下。

我想知道是否可以将二进制文件拆分为多个部分以通过一系列 QR 码进行编码?

这会像拆分文本文件一样简单,还是需要某种复杂的数据一致性检查?

【问题讨论】:

标签: qr-code


【解决方案1】:

是的,您可以将任意文件转换为一系列二维码, 类似Books2Barcodes

编码太大而无法放入一个二维码的数据的标准方法是使用二维码标准的"Structured Append Feature"。 唉,我听说大多数 QR 编码器或解码器——例如 zxing——目前(还)不支持生成或读取这样一系列使用结构化附加功能的条形码。

QR 码已经具有非常强大的内部纠错功能。 如果幸运的话,也许可以使用“split”实用程序拆分文件 切成小到足以放入易于阅读的二维码的碎片, 然后稍后以(希望)正确的顺序扫描它们并使用“cat”重新组装它们, 可能足以满足您的应用需求。

【讨论】:

    【解决方案2】:

    您肯定可以在二维码中存储大量数据; it can store 2953 bytes of data,其大小几乎是源自以太网的标准 TCP/IP 数据包的两倍,因此非常强大。

    您需要为每个 QR 码定义一些标头,以描述其在重建数据所需的流中的位置。它将类似于filename chunk 12 of 96,尽管以比纯文本更好的方式编码。 (文件名 8 个字节,块编号和块总数各 1 个字节——最多 256 个 QR 码,一个简单的 10 字节答案,每个代码仍然保留 2943 个字节。)

    您可能还想使用某种形式的forward error correction(例如erasure codes)来编码足够的冗余数据,以便透明地处理对单个二维码或整个缺失二维码的误读。虽然您可以使用existing library, such as for Reed-Solomon codes 来提供修复 QR 码中的误读的能力,但完全处理丢失的 QR 码可能需要您付出更多的努力。

    使用纠删码当然会减少您可以传输的数据量 - 而不是全部 753,408 字节 (256 * 2943),最终图像将只有 512k 或 384k 甚至更少的可用数据量 - 取决于什么您选择的码率。

    【讨论】:

      【解决方案3】:

      我认为理论上是可行的,就像拆分文本文件一样简单。但是,您可能需要设计某种标头以了解数据是多部分的,并确保无论扫描顺序如何,不同部分都可以正确合并在一起。

      我假设 QR 阅读器库返回原始二进制数据,您将负责将其转换为您想要的任何形式。

      【讨论】:

        【解决方案4】:

        如果您想要自动创建和传输,请参阅

        注意 - 我也没用过。

        另见:How can I publish data from a private network without adding a bidirectional link to another network - Security StackExchange

        【讨论】:

          猜你喜欢
          • 2011-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-03
          相关资源
          最近更新 更多