使用java讀取JPEG報錯Unsupported Image Type:
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站制作與策劃設(shè)計,久治網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:久治等地區(qū)。久治做網(wǎng)站價格咨詢:028-86922220javax.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導(dǎo)致的,Java默認是沒帶CMYK格式讀取的功能的,內(nèi)部讀取文件的類JPEGImageReader只能讀取RGB color model
二、解決方案
使用TwelveMonkeys就可以解決了。
TwelveMonkeys的使用比較簡單,只要把相關(guān)的jar包加入到類路徑,他的類我們基本不會用到,只要使用jdk ImageIO或其上層的接口就行了。JDK的ImageIO有自動發(fā)現(xiàn)功能,會自動查找相關(guān)的編解碼類并使用,而不使用jdk默認的編解碼類。
引入新的maven依賴
com.twelvemonkeys.imageio imageio-jpeg 3.6
使用以下參考的方法均有顏色異常,讀twelvemonkeys源碼也是用的ICCProfiles進行轉(zhuǎn)換,查到的一個工具類是FastCMYKToRGB,但是單獨摘出來使用顏色還是有偏差。下面參考中convertCmykToRgb方法也是使用ICCProfiles進行轉(zhuǎn)換,但是也是顏色異常,只有TwelveMonkeys的imageio-jpeg是最簡答的方案,如有直接轉(zhuǎn)換的可貼上代碼一起討論。
參考:
Java CMYK圖片轉(zhuǎn)RGB圖片
TwelveMonkeys圖片格式轉(zhuǎn)換git地址
java下cmyk圖片讀取和轉(zhuǎn)換rgb,以及圖片壓縮
Java 讀取jpeg圖片 Unsupported Image Type 異常
有顏色異常
Java讀取圖片 cmyk轉(zhuǎn)rgb
java下cmyk圖片讀取和轉(zhuǎn)換rgb
使用convertCmykToRgb方法顏色異常
Java讀取圖片 cmyk轉(zhuǎn)rgb
Reading CMYK JPEG images with Java ImageIO
AdobeICCProfilesCS4Win_end-user.zip下載
為什么 ARGB 和 CMYK 之間來回轉(zhuǎn)換會不斷損失顏色
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧