如何将图片从CMYK转换为RGB



我知道存在另一个帖子处理这个问题如何使用JMagick转换颜色空间?但是有件事我不明白:

    String baseName = "Pictures/";
    String fileName = "dragon.gif";
     MagickImage imageCMYK;
     try {
     ImageInfo info = new ImageInfo( baseName + fileName);
     info.setColorspace(ColorspaceType.CMYKColorspace);
     System.out.println("ColorSpace BEFORE => " + info.getColorspace());
     imageCMYK = new MagickImage( info );

     System.out.println("ColorSpace AFTER => " +
             imageCMYK.getColorspace());

当我创建新的MagickImage时,CMYKColorSpace不保留,因为我获得:

ColorSpace BEFORE => 12 (CMYK)

如何正确地将图片从CMYK转换为RGB ?

谢谢。

ColorSpace => 1 (RGB)

更新:您正在使用GIF图像。他们不支持"CMYK",所以转换不会为你工作(见这个论坛帖子在imagemagick的网站)!


使用MagicImage.rgbTransformImage(ColorspaceType.CMYKColorspace)。来自API:

public boolean rgbTransformImage(int colorspace)抛出MagickException

将参考图像从RGB转换为备用颜色空间。转换矩阵不是标准的:权重被重新缩放,使转换值的范围归一化为[0..MaxRGB]。


的例子:

try {
    MagickImage image = new MagickImage(new ImageInfo(baseName + fileName));
    if (!image.rgbTransformImage(ColorspaceType.CMYKColorspace))
         throw new Exception("Couldn't convert image color space");
    ...
} catch (MagickException e) {
    ...
}

这对于PNG等其他图像格式仍然不起作用。

相关内容

  • 没有找到相关文章

最新更新