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);
    }


    参考: http://www.randelshofer.ch/blog/2011/08/reading-cmyk-jpeg-images-with-java-imageio/

猜你喜欢

转载自qiufengzi1987.iteye.com/blog/1751941