我正在开发一个嵌入式应用程序,其中设备在 LCD 屏幕上生成 QR 码。
代码生成部分似乎工作得很好,但我似乎在解码它时遇到了一些麻烦。
我通过函数生成二维码
QRcode *qr = QRcode_encodeString8bit("http://some/url/", 0, QR_ECLEVEL_Q);
然后将其转换为图像库可以读取的格式以显示在屏幕上。然而,虽然 Android 上的“QR Droid”应用程序可以很好地读取它并将我发送到 URL,但另一个名为“Qr Barcode Scanner”的应用程序似乎无法识别代码,即使它似乎检测到对齐点。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;
}
}