首先,我想说我不是图像处理专家。
我想将图像色彩空间从一个转换到另一个,并同时更改 icc 颜色配置文件。我设法使用 JMagick(ImageMagick Java 端口)来做到这一点,但在纯 Java 中没有办法(即使使用 JAI)。
首先,我想说我不是图像处理专家。
我想将图像色彩空间从一个转换到另一个,并同时更改 icc 颜色配置文件。我设法使用 JMagick(ImageMagick Java 端口)来做到这一点,但在纯 Java 中没有办法(即使使用 JAI)。
使用ColorConvertOp
,这将进行色彩空间转换。您有几个选项来设置 icc 颜色配置文件。您可以通过使用正确的色彩空间常数来使用预定义的配置getInstance
文件,也可以指定一个包含配置文件的文件。这是一个例子:
ICC_Profile ip = ICC_Profile.getInstance( ColorSpace.CS_sRGB );
ICC_ColorSpace ics = new ICC_ColorSpace( ip );
ColorConvertOp cco = new ColorConvertOp( ics, null );
BufferedImage result = cco.filter( sourceImage, null );
将result
包含具有sRGB
颜色空间的图像。