如何用Java去饱和BufferedImage?

Dyc*_*cey 5 java swing bufferedimage

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

mre*_*mre 10

用途ColorConvertOp:

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

    return source;
}
Run Code Online (Sandbox Code Playgroud)

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

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

BufferedImage desaturatedImage = GrayFilter.createDisabledImage(originalImage);
Run Code Online (Sandbox Code Playgroud)

  • @Dycey这是三行代码.你不可能真的比这简单得多. (4认同)
  • @Dycey,我认为使用`ColorConvertOp`就像它要进行像素逐个颜色转换一样简单.:) (2认同)