如何在Java中设置icc颜色配置文件并更改颜色空间

首先,我想说我不是图像处理专家。

我想将图像颜色空间从一个转换为另一个,并同时更改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颜色空间的图像。