2

我正在尝试在ZXing(斑马线)中启用PDF417条码读取。我从github repo中提取并根据wiki构建了库。ant build 输出似乎表明正在构建 PDF417 子模块。我尝试使用这些图像根据 wiki 测试所有内容,但出现“未找到条形码”错误。

kscottz@kscottz-laptop:~/barcode/zxing$  java -cp javase/javase.jar:core/core.jar com.google.zxing.client.j2se.CommandLineRunner Sample_PDF417.png 
file:/home/kscottz/barcode/zxing/Sample_PDF417.png: No barcode found
kscottz@kscottz-laptop:~/barcode/zxing$  java -cp javase/javase.jar:core/core.jar com.google.zxing.client.j2se.CommandLineRunner bc.png 
file:/home/kscottz/barcode/zxing/bc.png: No barcode found
kscottz@kscottz-laptop:~/barcode/zxing$  java -cp javase/javase.jar:core/core.jar com.google.zxing.client.j2se.CommandLineRunner sanitycheck.jpg 
file:/home/kscottz/barcode/zxing/sanitycheck.jpg (format: QR_CODE, type: TEXT):
Raw result:
<-- SNIP -->

是什么赋予了?我是否缺少启用 PDF417 的标志?在哪里可以设置这些类型的配置选项?我经常是 Python/C/C++ 开发人员,所以我可能会遗漏一些非常基本的东西。

4

3 回答 3

1

试试看--try_harder,否则是适合移动设备的模式,而不是使用更多的CPU来更多地扫描图像。--pure_barcode可能也会起作用,因为这些是合成图像。

一般来说。这些似乎没有解码。我无法访问第一个图像,甚至在在线解码器中也找不到第二个图像(您始终可以将其用作检查):http: //zxing.elasticbeanstalk.com/w/decode.jspx

我不知道为什么,因为我认为它是有效的。您可以通过调试器运行以查看究竟出了什么问题。

于 2012-12-05T19:38:48.233 回答
0

所以我在测试条码上运行了 ZXing 测试脚本,它们确实通过了,所以我假设它已启用。似乎当 zxing 说 alpha 时,它们的真正意思是 alpha。=(

于 2012-12-05T19:27:29.367 回答
0

基本上要使用 ZXING 库仅检测 PDF417 条码,您需要传入提示,要求 ZXING 仅查找 PDF417 类型。

试试下面,

 hints.put(DecodeHintType.POSSIBLE_FORMATS, EnumSet.of(BarcodeFormat.PDF_417));

查看以下示例,

LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage);
        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

        Map<DecodeHintType, Object> hints = new EnumMap<>(DecodeHintType.class);

        hints.put(DecodeHintType.POSSIBLE_FORMATS, EnumSet.of(BarcodeFormat.PDF_417));
        //hints.put(DecodeHintType.POSSIBLE_FORMATS, EnumSet.allOf(BarcodeFormat.class));
        hints.put(DecodeHintType.CHARACTER_SET, "utf-8");
        hints.put(DecodeHintType.TRY_HARDER, true);
        Result result = new MultiFormatReader().decode(bitmap, hints);
于 2019-07-30T12:23:50.493 回答