用java从上传的图像中读取条形码

用java从上传的图像中读取条形码,java,barcode,barcode-scanner,Java,Barcode,Barcode Scanner,我必须从上传的图像文件中读取基于java的web应用程序的条形码。我尝试过Zxing和其他类似的库,但只有上传精确的图像,它才会起作用。有人能推荐一个api来从图像中读取条形码吗?该图像可能是随机单击的图像,也可能包含其他数据。因此,我们必须识别条形码并对其进行解码 由于您没有提供太多信息,我将尽力帮助您解决我认为的问题 我认为中兴应该是正确的选择。默认情况下,条形码解码器在图像中搜索条形码。如果您的图像仅包含条形码本身,则可以设置提示PURE_barcode以加快解码速度。只有在一张图像中有多

我必须从上传的图像文件中读取基于java的web应用程序的条形码。我尝试过Zxing和其他类似的库,但只有上传精确的图像,它才会起作用。有人能推荐一个api来从图像中读取条形码吗?该图像可能是随机单击的图像,也可能包含其他数据。因此,我们必须识别条形码并对其进行解码

由于您没有提供太多信息,我将尽力帮助您解决我认为的问题

我认为中兴应该是正确的选择。默认情况下,条形码解码器在图像中搜索条形码。如果您的图像仅包含条形码本身,则可以设置提示PURE_barcode以加快解码速度。只有在一张图像中有多个条形码时才会出现问题

您的问题似乎是上传的图像而不是ZXing。我建议检查图片上传是否正确

下面是一个使用任何ZXing读取器解码BuffereImage的示例

public void decodeCode() throws IOException, NotFoundException, FormatException, ChecksumException {
    BufferedImage image = ImageIO.read(yourImage);
    BinaryBitmap bitmap = convertImageToBinaryBitmap(image);
    Result result = reader.decode(bitmap, hints);

    assertNotNull("DecoderResult must not be null", result);
    System.out.println(result.getText());
  }

 protected BinaryBitmap convertImageToBinaryBitmap(BufferedImage image) {
    int[] pixels = image.getRGB(0, 0,
                                image.getWidth(), image.getHeight(),
                                null, 0, image.getWidth());
    RGBLuminanceSource source = new RGBLuminanceSource(image.getWidth(),
                                                       image.getHeight(),
                                                       pixels);
    return new BinaryBitmap(new HybridBinarizer(source));
  }

你有没有找到解决办法?