javax.imageio.IIOException(Echarts图表经过Base64编码生成的图片读取时错误)

1、javax.imageio.IIOException: Error reading PNG image data

2、java.util.zip.ZipException: incorrect data check

这两个错误如何解决?

详细分析:这两个问题是ImageIo这个类的问题,这个是Java中自己的处理图片的一个类,但是这个类存在这问题,对于一些图片有损坏的,或者是图片格式不匹配的情况,于是就会报上述的错误,以致于程序不能继续执行。

  这个问题困扰了我很长时间,后来意识到自己是掉进了一个陷阱里了,既然ImageIo这个类存在问题,为什么我还一直坚持用这个方法呢,为什么我不能用读取二进制文件的方法,进行图片的读写呢,因为本身任何的图片都属于二进制文件呢。于是果断试了一下,没想到还成功了。

之前各种查找的没能解决根本问题的方法:(没有脱离ImageIo这个类的范围)

后来,我用最原始的读取二进制的方法,成功了。

就这样,就可以获取输入的流了ByteArrayOutputStream,然后利用HSSFPatriarch将图片写入EXCEL。终于解决了这个问题了,嘿嘿。

posted @ 2017-05-15 12:02  ssc在路上  阅读(1903)  评论(0)    收藏  举报