首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

Image读取CMYK和Tif 报错的解决方法

2013-11-13 
Image读取CMYK和Tif 报错的解决办法上一篇说到,Image.read()返回空是null,引入一个包就行。后来要讲读取到

Image读取CMYK和Tif 报错的解决办法
   上一篇说到,Image.read()返回空是null,引入一个包就行。后来要讲读取到的图片缩小,还是会报错。没办法只得先把它先转换成其他格式的图片才能进行缩小,处理办法,为先判断图片的真实格式,用下面类里的getRealFormatName(),如果为Tif格式,先将它转成其他可被ImageIO读取的格式covertTif就可以了。
   后来又碰到一种情况,就是读取的图片有些不是RGB颜色,而是CMYK设置的颜色,此时会报不支持此格式的错误。内容如下:
   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)
   ....
   同样需要将图片的颜色转为RGB再作读取,这里的处理方法是,不用系统自带的ImageIO读取图片,而用下面这个类的readImage(file)方法,这个方法里会对CMYK颜色的图片做特殊处理。
   



    此类需要引入一个包和ISOcoated_v2_300_eci.icc(CMYK的位图);
   
    注:CMYK转RGB参考自stackoverflow :
http://stackoverflow.com/questions/3123574/how-to-convert-from-cmyk-to-rgb-in-java-correctly?lq=1 codo君的答案;

热点排行