我一直在尝试使用Zxing 2.3.0读取UPC条形码的图像,但是我无法读取条形码的补充部分。代码仅成功读取第一部分。在搜索多个网站后,除了我目前的方法之外,我找不到任何有关如何阅读补充的进一步说明。非常感谢任何帮助。
public static void main(String[] args) {
decodeUPC5();
}
public static void decodeUPC5(){
InputStream barCodeInputStream = null;
try {
barCodeInputStream = new FileInputStream("C:/Users/apoclyps/git/zxing-barcoder/Zxing-Test/img/upc5.png");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
BufferedImage barCodeBufferedImage = null;
try {
barCodeBufferedImage = ImageIO.read(barCodeInputStream);
} catch (IOException e) {
e.printStackTrace();
}
LuminanceSource source = new BufferedImageLuminanceSource(barCodeBufferedImage);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
// Attempting to read UPC + 5 Supplement
GenericMultipleBarcodeReader multiReader = new GenericMultipleBarcodeReader(new MultiFormatReader());
try {
multiReader.decodeMultiple(bitmap);
} catch (NotFoundException e1) {
e1.printStackTrace();
}
Result[] result = null;
try {
result = multiReader.decodeMultiple(bitmap);
} catch (NotFoundException e) {
e.printStackTrace();
}
System.out.println("Results length "+result.length);
for(Result r : result ){
System.out.println("Barcode text is " + r.toString());
}
}
输出 结果长度1 条形码文字是9780735200449
答案 0 :(得分:1)
请注意,条形码的内容为9780735200449
而非9780735200449 51299
。它将始终(正确)返回9780735200449
作为条形码的内容。
在密钥ResultMetadata
下,+ {5}扩展名返回ResultMetadatatype.UPC_EAN_EXTENSION
。
请注意,即使它没有看到+5扩展名,它仍然会返回UPC条形码。因此,您可能会看到它在此图像上没有+5扩展名的情况下返回。然而它适用于我的应用程序,因此可以想象它很容易检测到+5。 (如果您使用应用程序进行扫描,请在左侧查看“元数据$ 12.99”)