我正在搞乱zxing库2.2(有没有文档?)
我想做的是:
获取现有的EAN13字符串,将其传递给库并获取要在ImageView中使用的图像(或将其写入内部存储,然后由我自己创建imageView的位图)
不幸的是,MatrixToImageWriter只适用于J2SE而不适用于android(因为awt?)因此我无法使用它。
我发现了这篇文章Generate barcode image in Android application
它适用于Code128,但当我将BarcodeFormat.CODE_128更改为EAN13时,我只得到一个空图像。
有什么想法吗? 是否有其他图书馆可以实现我的目标?
提前致谢!
答案 0 :(得分: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);
答案 1 :(得分:0)
您的代码是什么样的?当您单步执行创建代码(通过链接到的内容)时会发生什么
我创建了由android zxlib(通过相机)或条形码扫描仪(蓝牙枪)读取的datamatrix条形码,但是还没有在Android上创建条形码(因为我想打印条形码,我的开发机器更容易。)
我的datamatrix创建代码如下:
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);
至于帮助/文档,它是开源的,所以总是这样;)