对BufferedImage
进行去饱和的最简单方法是什么?
答案 0 :(得分:10)
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)
),它将返回图像i
的灰显版本。
话虽如此,我认为对BufferedImage
实例进行去饱和的最简单方法如下:
BufferedImage desaturatedImage = GrayFilter.createDisabledImage(originalImage);