我想讀一個PNG圖像的尺寸,但我會遇到下面的錯誤,而這樣做 -錯誤而讀取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());
有人可以請建議我需要做什麼來解決這個問題嗎?
你確定你餵養與有效PNG數據'ImageIO'?您是否嘗試在某些圖像軟件中打開文件,並讓'ImageIO'直接讀取而不是提供流? – Thomas
是的,我也是這麼做的。我試圖通過將圖像寫入輸出流來讀取文件。圖像正確顯示。閱讀尺寸時只能看到問題。 – rickygrimes