使用itextpdf添加图片时,报错 is not a recognized imageformat. 及源码简单分析

在使用iTextPDF库添加网络下载的PNG图片时遇到错误,提示图片格式未被识别。问题源于图片原始格式并非标准PNG,尽管修改了后缀,但源码中的图像格式检查不依赖于文件扩展名。通过源码调试发现,图片的真实格式导致了异常。更换其他图片后能正常工作,说明问题在于图片本身而非jar包版本。
摘要由CSDN通过智能技术生成

今天在使用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的后缀是我后来改的,但源码里对图片格式的判断不是简单的看后缀,而是一种更底层的方式,故报错。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值