[英]Convert RGB JPEG to CMYK JPEG using ColorConverterOp Java
我正在尝试将rgb中的jpeg图像转换为CMYK颜色空间。 唯一的问题是我的最终输出始终是黑色图像。 但是有趣的是,MAC中的预览应用程序可以正确显示图像。 到目前为止,到目前为止,似乎还没有成功将rgb转换为cmyk的示例。 以下是我尝试进行转换的代码。 如果我正在使用RGB ICC配置文件执行到rgb的转换,则此代码可以正常工作。 任何指导,不胜感激。
import javax.imageio.ImageIO;
public class TestClass {
public static void main(String[] args) throws Exception {
BufferedImage cmykImage = ImageIO.read(new File(
"CMYK_Sample.jpg"));
BufferedImage rgbImage = null;
ColorSpace cpace = new ICC_ColorSpace(ICC_Profile.getInstance(TestClass.class.getClassLoader().getResourceAsStream("icc/USWebCoatedSWOP.icc")));
ColorConvertOp op = new ColorConvertOp(cpace, null);
rgbImage = op.filter(cmykImage, null);
ImageIO.write(rgbImage, "JPEG", new File("CMYK_Sample_RGB_OUTPUT2.jpg"));
}
}
CMYK用于打印。 因此,除pdf和postscript文件外,几乎没有其他方法可以显示它。 JPEG几乎只能显示RGB。 因此,在最后一行ImageIO.write中,您尝试将cmyk读取为RGB。 这是问题所在。
JPEG中的CMYK:“当系统要求将其从CMYK图像模式保存JPEG时,Adobe Photoshop和其他一些面向印前的应用程序将生成四通道CMYK JPEG文件。几乎所有不具备印前知识的东西都可以处理CMYK JPEG(或任何其他CMYK)格式)。制作用于Web的JPEG时,请确保从RGB或灰度模式保存。” (http://www.faqs.org/faqs/jpeg-faq/part1/)
至于在Java中显示CMYK文件,请使用java-2d(http://download.oracle.com/javase/1.3/docs/guide/2d/spec/j2d-color.fm2.html)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.