Invalid icc profile: duplicate sequence numbers

本文介绍了解决处理图片时出现的 javax.imageio.IIOException 异常的方法。通过引入 TwelveMonkeysImageIO 插件并调整版本以适应 JDK 版本,可以有效避免因 ICC 配置文件重复序列号导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理图片时报异常信息:

javax.imageio.IIOException: Invalid icc profile: duplicate sequence numbers

报异常的图片:


网上有人遇到了同样的异常信息,并使用插件解决了问题:

http://stackoverflow.com/questions/32023809/javax-imageio-iioexception-invalid-icc-profile-duplicate-sequence-numbers

TwelveMonkeys ImageIO官网地址

http://haraldk.github.io/TwelveMonkeys/#jpeg

TwelveMonkeys ImageIO is a collection of plugins and extensions for Java's ImageIO.

These plugins extends the number of image file formats supported in Java, using the javax.imageio.* package. The main purpose of this project is to provide support for formats not covered by the JRE itself.

TwelveMonkeys ImageIO工程主要支持了一些JRE自己没有覆盖到的图片格式。


问题解决方案

1.将相应的格式包导入到工程中,如jpeg

<dependency>

<groupId>com.twelvemonkeys.imageio</groupId>

<artifactId>imageio-jpeg</artifactId>

<version>3.0-rc5</version>

</dependency>

注意版本问题

最新版的插件需要使用jdk1.7,如<version>3.2.1</version>

而我们一般工程都还停留在jdk1.6,所以我们需要使用其早期版本如<version>3.0-rc5</version>

其实也可以使用官网提供的源代码使用1.6版本进行编译,但源码有问题,最终放弃了。

2.加载问题

加入jpeg包后,java工程main函数跑问题解决了,一切正常,但放web工程tomcat中问题依旧。

Because the ImageIO plugin registry (the IIORegistry) is "VM global", it doesn't by default work well with servlet contexts.

上面是插件官网的说词,需要将下面的代码加入到处理图片的地方即可。

ImageIO.scanForPlugins()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值