gpt4 book ai didi

java - 使用 ZXing Reader 解码位图

转载 作者:行者123 更新时间:2023-12-02 03:32:32 25 4
gpt4 key购买 nike

我还无法使用 ZXing 解码 QR 码。我使用的是 buglabs.net 的 BUG,但问题似乎与硬件无关,而是与图像的格式有关。

这是我到目前为止所拥有的:

try {
LuminanceSource source = new AWTImageLuminanceSource(bimage);
bitmap = new BinaryBitmap(new GlobalHistogramBinarizer(source));
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
Result result = reader.decode(bitmap, hints) ;
System.out.println("result is:" + result.getText());
} catch (ReaderException re) {
System.out.println("I can't find a barcode here");
}

代码在 reader.decode(bitmap,hins) 处中断。我收到一个带有以下跟踪的 ​​NullPointerException:

java.lang.NullPointerException
at qrcoder.QRCoder.shoot(QRCoder.java:152) // this is the camera shoot function
at qrcoder.QRCoder.buttonEvent(QRCoder.java:89) // press button
at com.buglabs.bug.input.pub.InputEventProvider.run(InputEventProvider.java:90)

不确定 InputEventProvider 试图告诉我什么。

非常感谢,萨拉

不知道怎么回事,但 Reader 从未收到过写信。最后通过直接使用 Decoder 将 Reader 自己的源代码替换回函数中来实现。

private void shoot() throws IOException, NotFoundException, FormatException,     ChecksumException {
// take the picture
Hashtable hints = null;
DecoderResult decoderResult;
cameraLED.setLEDFlash(true);
camera.grabPreview(buf);
camera.grabPreview(buf);
cameraLED.setLEDFlash(false);
InputStream in = new ByteArrayInputStream(camera.grabFull());
BufferedImage bImageFromConvert = ImageIO.read(in);
LuminanceSource source = new BufferedImageLuminanceSource(bImageFromConvert);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
ResultPoint[] points;

final Decoder decoder = new Decoder();
DetectorResult detectorResult = new Detector(bitmap.getBlackMatrix()).detect(hints);
decoderResult = decoder.decode(detectorResult.getBits(), hints);
points = detectorResult.getPoints();
Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, BarcodeFormat.QR_CODE);

if (result.getText() != null){
System.out.println("result is:" + result.getText());
}
else {System.out.println("bitmap is null");}


ic.repaint();
}

目前有效,谢谢!

最佳答案

项目中有BUG的示例代码,由BUG们贡献。请参阅错误/。不过已经很老了。

QRCoder 是你的类(class),不是吗?所以不知道这是BUG还是库的问题。

关于java - 使用 ZXing Reader 解码位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6190342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com