cmyk图片转为rgb图片
不久前在项目中遇到图片不能上传问题,debug跟踪到程序中javax.imageio.ImageIO.read(fin)这句段代码报异常,经查是因为图片色彩空间为CMYK模式,这就需要先将图片转为rgb模式后处理。在网上搜了很多资料,最终发现一个解决的还算不错的方法,如果以上代码报异常,则在catch中做如下处理,将主要的处理类已经压缩成jar,可直接调用:
ImageInputStream iis = new FileImageInputStream(new file(filePath)); ImageReader r = new CMYKJPEGImageReader(new CMYKJPEGImageReaderSpi()); r.setInput(iis); String format = r.getFormatName(); if ("JPEG".equalsIgnoreCase(format) || "JPG".equalsIgnoreCase(format)) { Image image = r.read(0); }