web-dev-qa-db-ja.com

低エラー訂正で、何バイトをQRコードに収めることができますか?

少なくとも300バイト(またはそれ以上)をQRコードに収める必要があり、各バイトをここにある関連するISO/IEC 8859-1文字にマッピングすることでこれを実現できると思います。

各バイト(1〜255)には1文字しか関連付けられていないので、次のことができます このデモでアイデアの有用性をテストします (メールリンクには、私が参照している高密度のQRがあります)

ここではカメラの解像度が重要な要素であることを知っているので、特に気づいていないことですが、問題が発生する前に、QRコードに挿入できる個々の文字の数を把握したいと思います。サイジング、または解決のヒントがあれば役立ちます。

私のもう1つの前提は、QRリーダーがすべてのISO/IEC 8859-1文字を読み取って、アプリに渡すことができるということです。

3

QRコードのバージョン範囲は1〜40です。この情報は、その中に保存されているデータの量を示します。 バージョン4 は、31,329ピクセルで177行177列(「モジュール」と呼ばれるいくつかのデシメーション)です。この時点で、これはQRコード自体のエラー修正やその他のインフラストラクチャを考慮に入れていない仮想的な最大値であることはすぐに明らかです。

エラー修正、インフラストラクチャ(エラー修正、ターゲット設定、頻度、マスクパターンなどの固定パターン)および最小限のエラー修正が追加されると、これは最大23,648ビット(2956バイト-のバージョンでの高レベルエラー修正)になります。は10,208ビット1276バイトです)。

1276バイトのデータを持つバージョン40バーコード:

Version 40, L ECC

大容量バーコード領域に入ると、 color 2dバーコードになります。バックとホワイトのバーコードテクノロジーは、かなり速く最大になる傾向があります(データマトリックスは、2,335の英数字のみを保持できます(バイトではありません))。

QRコードでバージョン40のサイズ制限を超えるには、 Structured Append (エンコードモード0011)を使用できますが、さまざまなQRコード読み取りライブラリをすばやく検索すると、それらのいずれかがサポートします。

代わりの珍しいアプローチは代わりに、完全な情報を持つオンラインリソースを参照するバーコードにデータのタグを格納することです。これはオフラインの状況ではうまく機能しないことに注意してください。


はるかに小さいデータのチャンク(300バイト)を処理する場合、2400ビットのデータを、エラー訂正の低いバージョン11 QRコードに適合させることができます(321バイトで使用する2592ビットのデータがあります)。

Version 11, L ECC

この時点で、バージョン11とバージョン40の間でより多くのデータスペースがあるため、データからbyte[]を取得するのが困難な場合は、いくつかのエンコードオプションがあります。 QRコードで許可されている英数字文字セット(Webアドレス用に設計された44文字-バージョン10-26の2文字では11ビット)または数値(バージョン10-26では3桁の場合12ビット)でエンコードできます。最も扱いやすいものです。

14
user40980

QRコードに多すぎるバイトを入れるのは良い考えではありません。生成されたQRコードは大きく、管理と読み取りが困難になります。

より良い戦略は、データをURLにリンクし、URLをQRコードに変換することです。 URLリンクリソースに制限はありません。あなたは画像、SVG、html、テキストファイルを置くことができます...

QRコードが構造化情報(メタデータなど)を表す必要がある場合は、そのURLにXMLドキュメントを配置できます。

たとえば、これを行うサービスがいくつかあります。 metaqrcode.com

この戦略にはいくつかの長所と短所があります。
プロ :

  • qrcodeを再印刷せずにデータを変更できます
  • 大きなQRコードはありません
  • qRコードが小さいほど読みやすくなります

短所:

  • データを読み取るにはインターネット接続が必要です
2
famagosta