首先声明:
- 只有jpeg才支持cmyk
- 默认Java是不能读取cmyk的jpg的,需要用
这里讨论的是如何在内存中把rgb转为cmyk
// 假设file是png的,即rgb的 BufferedImage img = ImageIO.read(file); ColorSpace cpace = new ICC_ColorSpace( ICC_Profile.getInstance("/home/coder4/Downloads/JapanColor2001Uncoated.icc") ); ColorConvertOp op = new ColorConvertOp(img.getColorModel().getColorSpace(), cpace, null); img = op.filter(img, null); // 此时img就是cmyk了
各种profile可以在这里下载:https://github.com/cjw-network/cjwpublish1411/tree/master/vendor/imagine/imagine/lib/Imagine/resources/Adobe/CMYK