如何用Java去饱和BufferedImage?

时间:2011-06-24 17:14:24

标签: java swing bufferedimage

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

1 个答案:

答案 0 :(得分:10)

使用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)),它将返回图像i的灰显版本。

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

BufferedImage desaturatedImage = GrayFilter.createDisabledImage(originalImage);