首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libqrencode生成一些android/ios阅读器无法读取的二维码

libqrencode生成一些android/ios阅读器无法读取的二维码
EN

Stack Overflow用户
提问于 2012-07-16 03:45:47
回答 2查看 1.3K关注 0票数 0

我正在开发一个嵌入式应用程序,其中一个设备在LCD屏幕上生成二维码。

代码生成部分似乎工作得很好,但我在解码它时似乎遇到了一些问题。

我通过函数生成二维码

代码语言:javascript
复制
QRcode *qr = QRcode_encodeString8bit("http://some/url/", 0, QR_ECLEVEL_Q);

然后将其转换为可由图像库读取的格式以显示在屏幕上。然而,虽然Android上的"QR Droid“应用程序可以很好地读取它并将我发送到URL,但另一个名为"Qr条形码扫描器”的应用程序似乎无法识别代码,尽管它似乎可以检测到对齐点。iOS也是如此--一些应用程序可以很好地阅读它,而一些应用程序就像它不是一个代码一样。

此问题的可能原因是什么?我尝试了不同的纠错级别,但并不是这样。

提前感谢您的回复..

编辑:显然代码是水平翻转的。我改变了将其转换为16位图像的方式,它起作用了。我写下了一个代码片段以备将来参考,以防其他人遇到同样的问题。

代码语言:javascript
复制
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;
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-16 12:55:23

@smparkes我不确定二维码被翻转了。zxing可以读取它,并且它不允许镜像代码(不能没有TRY_HARDER)。

是的,有效二维码的镜像永远不会有效;旋转是有效的。我想,如果这个库总是生成无效的二维码,我会感到惊讶。QR Droid也是基于zxing的,所以如果它也读取这些无效代码,那将会很惊讶。

但话又说回来,其他一些证据表明,镜像是问题所在。

票数 0
EN

Stack Overflow用户

发布于 2012-10-25 16:05:20

在我的例子中,可以工作的代码(与输出相同结果的二维码生成器相比)如下所示

代码语言:javascript
复制
QRcode *qr;
qr = QRcode_encodeString("ABC012345", 0, QR_ECLEVEL_H, QR_MODE_8, 1);

int i_qr, j_qr;
for (i_qr = 0; i_qr < qr->width; i_qr++) {
    for (j_qr = 0; j_qr < qr->width; j_qr++) { 
        if (qr->data[(i_qr * qr->width) + j_qr] & 0x1)
            printf("*");
        else
            printf(" ");
    }
    printf("\n");
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11495059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档