Java读取图片长宽出现问题javax.imageio.IIOException: Error reading PNG image data

xcfdsarfew 2020-03-17 05:14:55



URL url =new URL("http://image.luzhua.com/image/ooYBAFqf9mKAAOD-AANzINToj5k774.PNG");

trustAllHosts();

URLConnection dConn = url.openConnection();
dConn.setRequestProperty("accept", "*/*");
dConn.setRequestProperty("connection", "Keep-Alive");
dConn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
dConn.setRequestProperty("Accept-Charset", "UTF-8");
dConn.setRequestProperty("contentType", "UTF-8");
dConn.setConnectTimeout(5000);
dConn.setReadTimeout(5000);
dConn.setUseCaches(false);
dConn.setDefaultUseCaches(false);
dConn.connect();

ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = input.read(buffer)) > -1 ) {
baos.write(buffer, 0, len);
}
baos.flush();


String suffix=ImageType.imageType(new ByteArrayInputStream(baos.toByteArray()));

BufferedImage image = ImageIO.read(new ByteArrayInputStream(baos.toByteArray()));
this.height=image.getHeight();
this.width=image.getWidth();



有些图片会出现这种问题

javax.imageio.IIOException: Error reading PNG image data
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1308)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1577)
at javax.imageio.ImageIO.read(ImageIO.java:1448)
at javax.imageio.ImageIO.read(ImageIO.java:1352)
at com.onion.health.system.tools.image.ImageInfo.<init>(ImageInfo.java:73)
at com.onion.health.system.tools.image.CrawlDownImage.imageInfo(CrawlDownImage.java:150)
at com.onion.health.system.article.service.impl.ArticleFileServiceImpl.main(ArticleFileServiceImpl.java:271)
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at java.io.DataInputStream.readFully(DataInputStream.java:195)
at com.sun.imageio.plugins.png.PNGImageReader.decodePass(PNGImageReader.java:1092)
at com.sun.imageio.plugins.png.PNGImageReader.decodeImage(PNGImageReader.java:1196)
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1301)
... 6 more
java.lang.IllegalArgumentException: Destination image width must not be less than or equal to 0 pixels.
at net.coobird.thumbnailator.Thumbnails.validateDimensions(Thumbnails.java:147)
at net.coobird.thumbnailator.Thumbnails.access$0(Thumbnails.java:134)
at net.coobird.thumbnailator.Thumbnails$Builder.size(Thumbnails.java:885)
at com.onion.health.system.article.service.impl.ArticleFileServiceImpl.main(ArticleFileServiceImpl.java:292)
...全文
2026 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xcfdsarfew 2020-03-17
  • 打赏
  • 举报
回复
这种情况如何获取图片正确高宽?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧