[英]JMagick - How to convert a picture from CMYK to RGB?
我知道還有另一篇文章處理這個問題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?
謝謝。
色彩空間后 => 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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.