【发布时间】:2015-06-15 14:41:59
【问题描述】:
我需要生成128A格式的条码,数据为:900000588548001100001305000000000207201512345.6|12345.7
我正在使用 ZXing 库,这是我的方法:
private void barcodeGenerator(String data)
{
try
{
com.google.zxing.MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix bm = writer.encode(data, BarcodeFormat.CODE_128, 700, 200);
Bitmap ImageBitmap = Bitmap.createBitmap(700, 200, Config.ARGB_8888);
for (int i = 0; i < 700; i++)
{//width
for (int j = 0; j < 200; j++)
{//height
ImageBitmap.setPixel(i, j, bm.get(i, j) ? Color.BLACK : Color.WHITE);
}
}
File f = new File(Environment.getExternalStorageDirectory() + "/barcode1.png");
FileOutputStream fos = new FileOutputStream(f);
ImageBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
}
catch(Exception e)
{
e.printStackTrace();
}
}
此方法生成并存储在使用ZXing Barcode Scanner扫描的SDCard中的条码图像。
数据量少时,条码扫描成功。例如:123.4|456.7
但如果数据很大,例如:900000588548001100001305000000000207201512345.6|12345.7
似乎生成了一些错误的条形码,扫描仪无法扫描生成的条形码。
提前感谢您的帮助。
编辑:已添加生成的条形码图像
【问题讨论】:
标签: java android image barcode zxing