簡體   English   中英

使用ColorConverterOp Java將RGB JPEG轉換為CMYK JPEG

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM