今天在使用itextpdf做一些小样例时,在PDF中添加一张我在网上找的图片时报错了,报错信息:“file:/C:/Users/kkjf/Desktop/aaa.png is not a recognized imageformat.”。原本以为是图片后缀问题,各种修改,无果;又觉得是jar包版本问题,各种修改,无果。后来又换了张图片试了一下,成功!
从源码分析:
进入Image.getInstance()方法源码,打个断点走一遍,我发现这张图片在任意一个if判断里都不成立
所有if判断走完后,它就会抛出下边的异常
到这里,其实报错的原因我基本了解了,报错的那张图片我是从网上下载的,它原本的格式类似与 “u=2212816616,2139034518&fm=253&fmt=auto&app=138&f=JPEG.webp” ,png的后缀是我后来改的,但源码里对图片格式的判断不是简单的看后缀,而是一种更底层的方式,故报错。