デバイスがLCD画面にQRコードを生成する組み込みアプリケーションを開発しています。
コード生成部分は問題なく機能しているようですが、デコードに問題があるようです。
関数を介してQRコードを生成します
QRcode *qr = QRcode_encodeString8bit("http://some/url/", 0, QR_ECLEVEL_Q);
次に、画像ライブラリで読み取って画面に表示できる形式に変換します。ただし、Androidの「QRDroid」アプリはそれを読み取ってURLに正常に送信できますが、「Qrバーコードスキャナー」と呼ばれる別のアプリは、位置合わせポイントを検出しているように見えても、コードを認識していないようです。iOSについても同じことが言えます。一部のアプリはそれを正しく読み取り、一部のアプリはコードではないように動作します。
この問題の考えられる原因は何でしょうか?さまざまなエラー訂正レベルを試しましたが、そうではありません。
返信ありがとうございます。
編集:どうやらコードは水平方向に反転しました。16ビット画像への変換方法を変更しましたが、機能しました。他の誰かが同じ問題に遭遇した場合に備えて、将来の参照用にコードスニペットを置いています。
QRcode *qr = QRcode_encodeString8bit(string, 0, QR_ECLEVEL_H);
int i, j;
for (i = 0; i < qr->width; i++) {
for (j = qr->width - 1; j >= 0; j--) { //flipped this
if (qr->data[(j * qr->width) + i] & 0x1)
*(qr_img++) = COLOR_16BIT_BLACK;
else
*(qr_img++) = COLOR_16BIT_WHITE;
}
}