我正在尝试在ZXing(斑马线)中启用PDF417条形码读取。我从 github 存储库中提取并根据 wiki 构建了库。ant构建输出似乎表明正在构建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++开发人员,所以我可能缺少一些非常基本的东西。
尝试--try_harder
,否则它处于适合移动设备的模式,而不是使用更多的CPU来更多地扫描图像。 --pure_barcode
可能也可以工作,因为这些是合成图像。
通常。这些似乎并没有解码。我无法访问第一张图片,即使在在线解码器中也找不到第二张图片(您可以随时将其用作检查):http://zxing.elasticbeanstalk.com/w/decode.jspx
我不知道为什么,因为我认为它是有效的。可以运行调试器以准确查看出了什么问题。
所以我在测试条形码上运行了 ZXing 测试脚本,它们确实通过了,所以我假设它已启用。看来,当zxing说alpha时,他们实际上指的是alpha。=(
基本上要使用ZSING库仅检测PDF417条形码,您需要传入提示,要求ZSING仅查找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);