某些GIF图像使用了非标准的或不常见的压缩算法,或者包含了复杂的图像帧间数据。由于这些非标准特性,JDK 6~8中的GIFImageReader在解析这些特殊GIF图像时会遇到问题,从而导致数组索引越界的异常(java.lang.ArrayIndexOutOfBoundsException: 4096)。
解决的方法有三种:
1、用图像编辑软件比如photoshop,重新保存gif图片,把它变成标准格式;
2、使用第三方的gif解码库,比如hutool工具类GifDecoder;
3、升级jdk到9以上。
如果图片不多的话,推荐使用第一种方法,不会出什么意外。。。