从品牌网站建设到网络营销策划,从策略到执行的一站式服务
使用java读取JPEG报错Unsupported Image Type:
javax.imageio.IIOException: Unsupported Image Type
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
一、异常解释
javax.imageio.IIOException: Unsupported Image Type异常一般情况是由于图片颜色模式是CMYK导致的,Java默认是没带CMYK格式读取的功能的,内部读取文件的类JPEGImageReader只能读取RGB color model
二、解决方案
使用TwelveMonkeys就可以解决了。
TwelveMonkeys的使用比较简单,只要把相关的jar包加入到类路径,他的类我们基本不会用到,只要使用jdk ImageIO或其上层的接口就行了。JDK的ImageIO有自动发现功能,会自动查找相关的编解码类并使用,而不使用jdk默认的编解码类。
引入新的maven依赖
com.twelvemonkeys.imageio imageio-jpeg 3.6
使用以下参考的方法均有颜色异常,读twelvemonkeys源码也是用的ICCProfiles进行转换,查到的一个工具类是FastCMYKToRGB,但是单独摘出来使用颜色还是有偏差。下面参考中convertCmykToRgb方法也是使用ICCProfiles进行转换,但是也是颜色异常,只有TwelveMonkeys的imageio-jpeg是最简答的方案,如有直接转换的可贴上代码一起讨论。
参考:
Java CMYK图片转RGB图片
TwelveMonkeys图片格式转换git地址
java下cmyk图片读取和转换rgb,以及图片压缩
Java 读取jpeg图片 Unsupported Image Type 异常
有颜色异常
Java读取图片 cmyk转rgb
java下cmyk图片读取和转换rgb
使用convertCmykToRgb方法颜色异常
Java读取图片 cmyk转rgb
Reading CMYK JPEG images with Java ImageIO
AdobeICCProfilesCS4Win_end-user.zip下载
为什么 ARGB 和 CMYK 之间来回转换会不断损失颜色
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图