ImageLayout cmykImageLayout = new ImageLayout();
cmykImageLayout.setColorModel(cmykColorModel);
RenderingHints cmykHints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, cmykImageLayout);
cmykHints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
ParameterBlockJAI pb = new ParameterBlockJAI("format");
pb.addSource(src);
pb.setParameter("datatype", src.getSampleModel().getDataType());
PlanarImage op = JAI.create("format", pb, cmykHints);
// invert CMYK pixel value
pb = new ParameterBlockJAI("invert");