我知道有另一个帖子处理这个问题 How to convert colorspace using 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 AFTER => 1 (RGB)
最佳答案
更新:您正在使用 GIF
图片。它们不支持“CMYK”,因此转换对您不起作用(请参阅 imagemagick 网站上的 this 论坛帖子)!
使用MagicImage.rgbTransformImage(ColorspaceType.CMYKColorspace)
.来自 API:
public boolean rgbTransformImage(int colorspace) throws MagickException
Converts the reference image from RGB to an alternate colorspace. The transformation matrices are not the standard ones: the weights are rescaled to normalized the range of the transformed values to be [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) {
...
}
关于java - JMagick - 如何将图片从 CMYK 转换为 RGB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7500667/