如何在Java中对BufferedImage进行去饱和处理?

什么是使BufferedImage去饱和的最简单方法?

使用ColorConvertOp

 public static BufferedImage desaturate(BufferedImage source) { ColorConvertOp colorConvert = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null); colorConvert.filter(source, source); return source; } 

更新:
确实有一种更简单的方法。 您可以使用GrayFilter类。 这个类有什么createDisabledImage(Image i) ,它提供了一个静态实用方法(即createDisabledImage(Image i) ),它将返回图像i的灰显版本。

话虽这么说,我认为对BufferedImage实例进行去饱和的最简单方法如下:

 BufferedImage desaturatedImage = GrayFilter.createDisabledImage(originalImage);