java - 读取 PNG 图像尺寸时出错

标签 java

我正在尝试读取 PNG 图像的尺寸,但在执行此操作时遇到以下错误 -

Exception in thread "main" javax.imageio.IIOException: I/O error reading PNG header!
at com.sun.imageio.plugins.png.PNGImageReader.readHeader(PNGImageReader.java:307)
at com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:637)
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1212)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1560)
at javax.imageio.ImageIO.read(ImageIO.java:1422)
at javax.imageio.ImageIO.read(ImageIO.java:1326)

这是我所拥有的导致它的代码 -

    InputStream is = new ByteArrayInputStream(myImgByteArray);
    BufferedImage image = ImageIO.read(is);
    System.out.println("Height: " +image.getHeight()+ "Width: " +image.getWidth());        

有人可以建议我需要做什么来解决这个问题吗?

最佳答案

您可以使用其他方式来获取图像尺寸:

BufferedImage image = javax.imageio.ImageIO.read(new File(imageFilePath));
System.out.println(image.getHeight());
System.out.println(image.getWidth());

关于java - 读取 PNG 图像尺寸时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23247913/

相关文章:

java - JFileChooser 图像到缓冲图像

java - Swing Java 重绘无法使用 2 个 jpanels 工作

java - 从 s3 java SDK 创建时,s3 对象未应用正确的权限

java - Spring MVC,以硬编码方式访问列表索引,而不使用 <c :forEach>

java - 如何在数组中找到两个重复元素

java - (LWJGL3) 使用 glTexSubImage3D 上传图像数据后,OpenGL 2D 纹理数组保持为空

java - 我想创建一个多用户登录我的 Android 应用程序

java - 从另一个 Activity 调用一个 Activity 的方法

java - 如何为新项目添加 RecyclerView 幻灯片动画

java - 如何使用 XPath 和 Java 更新 XML