【问题标题】:Creating a BufferedImage from .tiff file从 .tiff 文件创建 BufferedImage
【发布时间】:2011-06-15 17:24:02
【问题描述】:

我正在尝试从 .tiff 文件创建 BufferedImage(raw() 是 .tiff 图像的路径):

// read a buffered image from the disk
BufferedImage buff = ImageIO.read(new File(raw()));

最初 ImageIO.read 返回 null 但我读到我需要将 JAI ImageIO JAR 添加到您的类路径中,我这样做了。现在我收到以下错误:

Exception in thread "main" javax.imageio.IIOException: I/O error reading image metadata!
        at com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:340)
        at com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:310)
        at com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.prepareRead(TIFFImageReader.java:971)
        at com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.read(TIFFImageReader.java:1153)
        at javax.imageio.ImageIO.read(ImageIO.java:1422)
        at javax.imageio.ImageIO.read(ImageIO.java:1282)
        at core.Page.initGuesses(Page.java:101)
....

有谁知道可能是什么问题?我做错了什么吗?

谢谢!

【问题讨论】:

  • 你试过 ImageIO.getImageReadersByFormatName("tiff");方法来查看它是否返回了一些东西?如果是这样,它会返回什么?这应该告诉您您的特定平台/环境是否声称具有 .tiff 或任何其他任意格式的解码器。

标签: java bufferedimage


【解决方案1】:

我也面临同样的问题。我试图从 tiff byte[] 获取 BufferedImage,但结果为 null。

我已经从 Tomcat 的 server.xml 文件中注释了一行,该文件与 JreMemoryLeaks 相关。 只需评论这一行:

Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"

这个解决方案对我有用。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多