-1

数値のみをエンコードするQRコードライブラリが必要です。数値のみのQRコードは、最大7089文字、英数字-4296を保存できます。検索した限り、英数字または2進数の値のみをエンコードする機能を備えたライブラリを見つけることができます。1つを除いて-BarcodeLib:http ://www.barcodelib.com/これは本当にコストがかかります。

したがって、数値データのみをエンコードし、最大7089桁を格納できる無料のライブラリが必要です。最も便利なのはJavaライブラリですが、Pythonまたは.netライブラリも歓迎します。

4

1 に答える 1

1

QRコードライブラリが日本で作成され、C ++であることがわかっている限り、コピーはGithubにあり、Kuapay IOSソースコードを探します.....パッケージに埋め込まれているのは、6つのソースコードを含むQRDrawフォルダーです。

興味のあるものと、最終的に何らかの方法で呼び出すものは、QR_Encodeです。ヘッダー(QR_Encode.h)を見ると、次のことがわかります。

===============
// åÎÇËí˘ê≥ÉåÉxÉã
   #define QR_LEVEL_L   0
   #define QR_LEVEL_M   1
   #define QR_LEVEL_Q   2
   #define QR_LEVEL_H   3

 // ÉfÅ[É^ÉÇÅ[Éh
    #define QR_MODE_NUMERAL  0
    #define QR_MODE_ALPHABET    1
    #define QR_MODE_8BIT     2
    #define QR_MODE_KANJI    3

// ÉoÅ[ÉWÉáÉì(å^î‘)ÉOÉãÅ[Év
  #define QR_VRESION_S  0 // 1 Å` 9
  #define QR_VRESION_M  1 // 10 Å` 26
  #define QR_VRESION_L  2 // 27 Å` 40

  #define MAX_ALLCODEWORD    3706 
      // ëçÉRÅ[ÉhÉèÅ[Éhêîç≈ëÂíl
  #define MAX_DATACODEWORD 2956 
     // ÉfÅ[É^ÉRÅ[ÉhÉèÅ[Éhç≈ëÂíl(ÉoÅ[ÉWÉáÉì40-L)
  #define MAX_CODEBLOCK   153 
     //  ÉuÉçÉbÉNÉfÅ[É^ÉRÅ[ÉhÉèÅ[Éhêîç≈ëÂíl(ÇqÇrÉRÅ[ÉhÉèÅ[ÉhÇä‹Çfi)
  #define MAX_MODULESIZE      177 
      // àÍï”ÉÇÉWÉÖÅ[Éãêîç≈ëÂíl

  #define QR_MARGIN 4

コメントは日本語なので、ソースコードで理解していることから、物事が沈むのに少し時間がかかります

次のコマンドを使用してエンコードプロセスを呼び出します。

CQR_Encode encoder;
encoder.EncodeData(1, 0, true, -1, str);

(1は実際にはQRレベル(リードソロモンエラー訂正レベル)を指します。この場合、M(RSエラー訂正)0はQRバージョンS(小さいサイズですか?)trueは自動拡張のブール値であり、-1はあいまいなパラメーターです。 masking_noと呼ばれますが、これらすべてにどのように適合するかはまだわかりません。strは、QRコードに作成する文字列です。

ソースコードから、実際に文字列を評価して、数値、アルファベット(すべて大文字)、漢字、または8ビット(混合大文字)であるかどうかを確認し、最大長とエンコード/圧縮方法を決定します。

したがって、あなたの質問に対する答えは、これがSDKの残りの部分の基礎となる実際の日本語コードである場合、渡す文字列が実際に数値であることを確認するだけで、それが理解され、より長い文字列を渡すことができます。おそらくバージョン2(L)を使用することをお勧めしますが、ECレベルをL(0)に下げて冗長性を減らし、最大文字数を増やすことをお勧めします(ps引用した数にはLのECが必要です。

これがお役に立てば幸いです

于 2013-01-29T10:05:13.130 に答える