0

我正在尝试使程序读取 QR 码,但是当我的代码运行时出现异常javax.imageio.IIOException: Can't read input file。该图像位于src目录中。有人可以帮我在我的代码中找到问题...

public class BarcodeSample {    

    public static void main(String[] args) {
        Reader reader = new MultiFormatReader();

        try {
            BufferedImage image = ImageIO.read(new File("src/img.png"));
            LuminanceSource source = new BufferedImageLuminanceSource(image);
            BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

            Result result = reader.decode(bitmap);

            BarcodeFormat format = result.getBarcodeFormat();
            String text = result.getText();

            ResultPoint[] points = result.getResultPoints();
            for (int i=0; i < points.length; i++) {
                System.out.println("    Point[" + i + "] = " + points[i]);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}
4

1 回答 1

0

首先,使用File.separator而不是'/'根据它运行的操作系统放置正确的分隔符。

现在问题出在src/img.png. 我建议您将图像放在目录之外,src因为该目录用于代码(不是必须的)。

我不知道您在哪个 IDE 上运行它,但请确保您的工作区当前目录设置为您的项目根目录以便src/img.png可以找到(假设src在您的根当前目录下),否则您将收到文件未找到异常

于 2012-04-16T10:51:48.913 回答