6

QRコードを使用して画像などのバイナリ情報を送信することをますます検討しています。これは、アプリのデモを行うたびに、WiFiまたは3G/4Gが機能しない状況で発生しているように見えるためです。

バイナリファイルを複数の部分に分割して、一連のQRコードでエンコードすることは可能でしょうか?

これはテキストファイルを分割するのと同じくらい簡単ですか、それともある種の複雑なデータコヒーレンシチェックが必要ですか?

4

4 に答える 4

8

はい、任意のファイルをBooks2Barcodesのような一連の QR コードに変換できます。

大きすぎて 1 つの QR コードに収まらないデータをエンコードする標準的な方法は、QR コード規格の「構造化追加機能」を使用することです。残念ながら、zxing などのほとんどの QR エンコーダーまたはデコーダーは、現在 (まだ) 構造化された追加機能を使用する一連のバーコードの生成または読み取りをサポートしていないと聞いています。

QR コードには、かなり強力な内部エラー修正機能が既に備わっています。運が良ければ、" split" ユーティリティを使用してファイルを簡単に読み取れる QR コードに収まるほど小さな断片に分割し、後でそれらを (できれば) 正しい順序でスキャンし、" cat" を使用して再構成することもできます。あなたのアプリケーションには十分かもしれません。

于 2012-08-16T11:21:16.573 に答える
2

QRコードには確かに多くのデータを保存できます。2953 バイトのデータを格納できます。これは、イーサネット ネットワークで発生した標準の TCP/IP パケットのサイズのほぼ 2 倍であるため、非常に強力です。

データを再構築するために必要なストリーム内の位置を記述する各 QR コードのヘッダーを定義する必要があります。のようなものになりますがfilename chunk 12 of 96、プレーンテキストよりも優れたものにエンコードされます。(ファイル名に 8 バイト、チャンク番号とチャンクの総数にそれぞれ 1 バイト -- 最大 256 個の QR コード、単純な 10 バイトの回答が 1 つ、コードごとに 2943 バイトが残ります。)

個々の QR コードまたは欠落している QR コード全体の誤読を透過的に適切に処理できるように、十分な冗長データをエンコードするために消去コードなどの何らかの形式の前方誤り訂正を使用することもおそらく必要になるでしょう。Reed-Solomon コードなどの既存のライブラリを使用して、QR コード内の誤読を修正する機能を提供できる場合もありますが、欠落している QR コードを完全に処理するには、かなり多くの労力が必要になる場合があります。

もちろん、消去コードを使用すると、送信できるデータの量が減少します。753,408 バイト (256 * 2943) の代わりに、512k または 384k またはそれ以下しか最終イメージに使用できません。選ぶ。

于 2012-06-02T02:24:42.403 に答える
1

理論的には可能で、テキスト ファイルを分割するのと同じくらい簡単だと思います。ただし、データがマルチパートであることを認識し、スキャンの順序に関係なく、異なる部分を正しくマージできるようにするために、おそらく何らかのヘッダーを設計する必要があります。

私は、QR リーダー ライブラリが生のバイナリ データを返すと想定しており、それを任意の形式に変換する作業を行う必要があります。

于 2012-06-02T01:14:09.260 に答える