【问题标题】:Java CMYK VoltonsJava CMYK Voltons
【发布时间】:2015-11-10 14:46:06
【问题描述】:

我不知道这是否已经在另一个问题中得到了回答,但我没有找到任何关于它的信息。

我的目标是通过 iText 2.1.7 创建一个有效的 PDF-X1a / PDF-X3 文档 我使用 JAI 将 RGB 图像转换为 CMYK,并且我还能够创建 PDF-X 文档。 Acrobat Pro 的验证器指出我转换的图像包含 CMYK 颜色空间中没有的特殊颜色(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;

【问题讨论】:

  • 不确定你是否解决了这个问题,但你的问题不是很清楚。首先,PDF/X-1a 和 PDF/X-3 有很大的不同。你必须定义你想要什么。其次,最好有一个示例文档来准确显示出问题的原因,因为“Volton”在颜色方面我完全不认识。

标签: java pdf pdf-generation itext cmyk


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    相关资源
    最近更新 更多