2015-11-10 5 views
0

Я не знаю, ответили ли на этот вопрос другим вопросом, но я ничего не нашел об этом.Java CMYK Voltons

Моя цель - создать действительный документ PDF-X1a/PDF-X3 через iText 2.1.7 Я использовал JAI для преобразования RGB-изображения в CMYK, а им также удалось создать документ PDF-X. Валидатор Acrobat Pro указывает, что мое изображение, которое я преобразовал, содержит специальные цвета (Volton in Adobe), которые не находятся в CMYK ColorSpace. Эти цвета должны быть объявлены отдельно. Есть ли возможное решение для этого с помощью 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; 
+0

Не уверен, что вы когда-либо решали это, но ваш вопрос не очень ясен. Начнем с того, что PDF/X-1a и PDF/X-3 значительно отличаются. Вам нужно будет определить, что вы хотите. Во-вторых, было бы неплохо иметь примерный документ, который точно показывает, что происходит не так, как «Вольтон» - это не то, что я узнаю в ell с точки зрения цвета. –

ответ

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