Zxing - UPC +5补充条码检测

时间:2014-01-09 19:51:06

标签: java barcode zxing

我一直在尝试使用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());
    }
}

Barcode image

输出 结果长度1 条形码文字是9780735200449

1 个答案:

答案 0 :(得分:1)

请注意,条形码的内容为9780735200449而非9780735200449 51299。它将始终(正确)返回9780735200449作为条形码的内容。

在密钥ResultMetadata下,+ {5}扩展名返回ResultMetadatatype.UPC_EAN_EXTENSION

请注意,即使它没有看到+5扩展名,它仍然会返回UPC条形码。因此,您可能会看到它在此图像上没有+5扩展名的情况下返回。然而它适用于我的应用程序,因此可以想象它很容易检测到+5。 (如果您使用应用程序进行扫描,请在左侧查看“元数据$ 12.99”)