2011-11-15 7 views
2

rgb의 jpeg 이미지를 CMYK 색상 공간으로 변환하려고합니다. 유일한 문제는 내 최종 출력물이 항상 검은 색 이미지라는 것입니다. 그러나 MAC에서의 미리보기 응용 프로그램은 이미지를 올바르게 보여줍니다. 지금까지 내가 본 어떤 곳에서도 cmyk 변환에 대한 성공적인 rgb의 예가없는 것 같습니다. 아래는 전환을 시도하는 데 사용하는 코드입니다. 이 코드는 RGB ICC 프로파일을 사용하여 rgb 로의 변환을 수행하는 경우 잘 작동합니다. 모든 지침을 크게 주시면 감사하겠습니다.ColorConverterOp Java를 사용하여 RGB JPEG를 CMYK JPEG로 변환

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

    } 
} 
+0

이미지가 항상 검은 색임을 어떻게 알 수 있습니까? 소프트웨어를 결정하기 위해 어떤 소프트웨어를 사용하고 있으며, Mac에서의 미리보기 앱보다 소프트웨어의 신뢰성이 더 우수한 이유는 무엇입니까? – Codo

+0

어쩌면 올바른 용어는 "검은 색"인 것처럼 보일 것이며 이는 Gimp 및 Photoshop 및 Ubuntu 미리보기 앱 및 이미지 뷰어에서 마찬가지입니다. 신뢰성에 관한 한, 나는 내가 생각하기에 어느 것이 든 다른 쪽보다 더 신뢰할 수 있다고 생각하지 않는다. 나는 방금 맥 미리보기가 나에게 내가 기대하는 것을 보여주는 것 같았고, 다른 응용 프로그램에서는 그렇지 않다는 것을 지적했다. – mtanzania

답변

1

CMYK는 인쇄용입니다. 따라서 pdf 및 postscript 파일을 제외하고는 표시 할 수있는 가능성이 거의 없습니다. JPEG는 거의 RGB 만 표시 할 수 있습니다. 그래서 마지막 라인 ImageIO.write에서 cmyk를 RGB로 읽으려고합니다. 여기에 문제가있다.

JPEG에서

CMYK :. "어도비 포토샵과 JPEG CMYK에서 이미지 모드를 저장 물었을 때 4 채널 CMYK JPEG 파일을 생성합니다 다른 프리 프레스 지향 응용 프로그램 프리 프레스에 정통한는 CMYK 대처할 것 아니에요 단단하게 아무것도 JPEG (또는 해당 문제에 대해서는 다른 CMYK 형식) 웹용 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)