java - 图像IO异常

标签 java javax.imageio

我收到以下错误:

javax.imageio.IIOException: Can't read input file!
Resource not found: C:\icon.gif
at javax.imageio.ImageIO.read(ImageIO.java:1301)
at connector.SystemTrayCreator.createImage(SystemTrayCreator.java:98)
at connector.SystemTrayCreator.create(SystemTrayCreator.java:36)
at connector.Start.main(Start.java:14)
Exception in thread "main" java.lang.IllegalArgumentException: creating TrayIcon with     null Image
at java.awt.TrayIcon.<init>(TrayIcon.java:168)
at connector.SystemTrayCreator.create(SystemTrayCreator.java:36)
at connector.Start.main(Start.java:14)
Java Result: 1

以下代码:

final TrayIcon trayIcon = 
            new TrayIcon(createImage("C:\\icon.gif", "Tray icon"));

protected static Image createImage(String path, String description) {
    Image image = null;

    try {
        File f = new File(path);
        image = ImageIO.read(f);
    } catch (Exception e) {
        e.printStackTrace();
    }

    if (image == null) {
        Debugger.showMessage("Resource not found: " + path);
        return null;
    } else {
        return (new ImageIcon(image, description)).getImage();
    }
}

我很确定路径是正确的。而且,名字也匹配。

谁知道出了什么问题吗?

最佳答案

你的代码看起来不错。目前我认为理论上可能存在两件事:

  1. 文件权限问题。也许将文件放置在驱动器根目录之外的其他位置并明确检查其权限。您可以直接从代码中调用 canRead() - 这就是 ImageIO.read 的作用。它必须返回true

  2. path 参数末尾可能有一些空格。使用 trim() 消除这种可能性。

关于java - 图像IO异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164483/

相关文章:

java - 如何将Oracle中的Date数据类型(格式 "01-JAN-19")转换为Java中的LocalDate数据类型

java - 获取验证码 session 的图像

java - 为什么只记录消息,而不记录完整模式?

java - 无法解析 Criteria API 中的嵌入实体

java - Java 高级成像 (JAI) 选项?

java.lang.ClassNotFoundException : net. sourceforge.jtds.jdbc.Driver 问题

java - 在 Java 中通过套接字发送图像的有效方法

java - 如何使用 IIOImage 读取图像并获取光栅

Java从挂载的URL中读取图片

java 提取jpeg图像细节