Java CMYK Voltons

时间:2015-11-10 14:46:06

标签: java pdf pdf-generation itext cmyk

我不知道这是否已在另一个问题中得到解答,但我没有找到任何相关内容。

我的目标是通过iText 2.1.7创建有效的PDF-X1a / PDF-X3文档 我使用JAI将RGB图像转换为CMYK,我也可以创建PDF-X文档。 Acrobat Pro的验证器指出我转换的图像包含不在CMYK ColorSpace中的特殊颜色(Adobe中的Volton)。这些颜色需要分开声明。是否有可能使用java执行此操作并为图像提供所需信息?

目前我的转换看起来像

BufferedImage rgbImage = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
BufferedImage cmykImage = null;
byte[] imageInByte = new byte[0];
try {
  rgbImage = ImageIO.read(image);
  ColorSpace cpace = new ICC_ColorSpace(ICC_Profile.getInstance(_iccCmykProfile.getInputStream()));
  ColorConvertOp op = new ColorConvertOp(cpace, null);
  cmykImage = op.filter(rgbImage, null);
  JAI.create("encode", cmykImage, baos, "TIFF");
  baos.flush();
  imageInByte = baos.toByteArray();
  baos.close();
} catch (IOException e) {
  e.printStackTrace();
}
return imageInByte;

1 个答案:

答案 0 :(得分:-2)

这是CMYK的附加版本,但我希望它有效。

var cmyk = function (cyan, magenta, yellow, key) {    
    var red = magenta*255 + yellow*255 - cyan*255 - key*(255*2.2);
    var green = cyan*255 + yellow*255 - magenta*255 - key*(255*2.2);
    var blue = magenta*255 + cyan*255 - yellow*255 - key*(255*2.2);
    fill (red, green, blue);
};