1

我在搞乱 zxing library 2.2(有任何文档吗??)

我想做的是:

获取现有的 EAN13 字符串,将其传递给库并获取要在 ImageView 中使用的图像(或将其写入内部存储,然后自己为 imageView 创建位图)

不幸的是,MatrixToImageWriter 只适用于 J2SE 而不是 android(因为 awt?),因此我不能使用它。

我发现这篇文章在 Android 应用程序中生成条形码图像

它适用于 Code128,但是当我将 BarcodeFormat.CODE_128 更改为 EAN13 时,我只会得到一个空图像。

有任何想法吗?是否有其他库可以实现我想要的?

提前致谢!

4

2 回答 2

1

您得到一个空图像,因为您传递的字符串不是“EAN-13”条码格式要求的格式。它应该是 13 位,最后一位应该是前 12 位的校验和。

您可以使用此链接了解有关 EAN-13 格式的更多信息。 http://www.barcodeisland.com/ean13.phtml

我使用以下函数来创建字符串的校验和数字。

private int calculateChecksumDigit(String mMembershipId) {
    int total_sum=0;
    for(int i=0;i<mMembershipId.length();i++)
    {
        if(i%2!=0) {
            total_sum=total_sum+Integer.parseInt(""+mMembershipId.charAt(i))*3;
        }
        else
        {
            total_sum=total_sum+Integer.parseInt(""+mMembershipId.charAt(i));
        }
    }
    return 10-(total_sum%10);

}  

然后将其传递为

 BarCodeGenerator.encodeAsBitmap(mMembershipId+calculateChecksumDigit(mMembershipId), BarcodeFormat.EAN_13, widthInPixels, heightInPixels);
于 2017-04-24T11:59:36.797 回答
0

你的代码是什么样的?当您逐步完成创建代码时会发生什么(通过您链接到的内容)

我创建了要由 android zxlib(通过相机)或条形码扫描仪(蓝牙枪)读取的 datamatrix 条形码,但没有费心在 android 上创建条形码(因为我想打印条形码,在我的开发机器上更容易)。

我的数据矩阵创建代码如下所示:

    MultiFormatWriter writer = new MultiFormatWriter();
    BitMatrix b = writer.encode(bitmapstr.toString(), BarcodeFormat.DATA_MATRIX, 1200, 1200);
    File f = new File(startpath + "bitmap-" + h.name + ".bmp");
    MatrixToImageWriter.writeToFile(b, "bmp", f);

至于帮助/文档,它是开源的,所以总是有的;)

于 2013-10-15T15:57:39.793 回答