在做圖片壓縮時,遇到如下錯誤:
Unsupported Image Type
原因是jdk自帶的jpeg解析器不能解析所有jpeg格式的圖片,如cmyk(印刷品模式)模式的。圖片經過P圖之后,保存時默認的保存格式是cmyk格式的,而不是rgb格式。
cmyk是彩色印刷時采用的一種套色模式,利用色料的三原色混色原理,加上黑色油墨,共計四種顏色混合疊加,形成所謂“全彩印刷”。四種標准顏色是:
C:Cyan =
青色,又稱為‘天藍色’或是‘湛藍’M:Magenta =
品紅色,又稱為‘洋紅色’;Y:Yellow = 黃色;K:Key Plate(blacK) = 定位套版色(黑色),有些文獻解釋說這里的K指代Black黑色,且為了避免與
RGB的Blue藍色混淆不用B而改稱K。
解決方案:
使用TwelveMonkeys就可以解決了。
TwelveMonkeys的使用比較簡單,只要把相關的jar包加入到類路徑,他的類我們基本不會用到,只要使用jdk ImageIO或其上層的接口就行了。jdk的ImageIO有自動發現功能,會自動查找相關的編解碼類並使用,而不使用jdk默認的編解碼類,所以使用這個庫是完全無入侵的。
maven的依賴代碼如下:
<!-- cmyk格式圖片轉換 -->
<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-jpeg</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-tiff</artifactId>
<version>3.3</version>
</dependency>
參照原文鏈接:
http://www.cnblogs.com/interdrp/p/7076202.html
http://blog.csdn.net/dbeautifullife/article/details/70211021
