开发者

How do I desaturate a BufferedImage in Java?

开发者 https://www.devze.com 2023-03-15 01:10 出处:网络
What\'s the simplest way to desaturate a BufferedIma开发者_StackOverflow中文版ge?Use ColorConvertOp:

What's the simplest way to desaturate a BufferedIma开发者_StackOverflow中文版ge?


Use ColorConvertOp:

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

    return source;
}

Update :
There is indeed a simpler way. You can use the GrayFilter class. What's nice about this class is that it provides a static utility method (i.e. createDisabledImage(Image i)) that will return a grayed-out version of the image i.

That being said, I think the simplest way to desaturate a BufferedImage instance is the following:

BufferedImage desaturatedImage = GrayFilter.createDisabledImage(originalImage);
0

精彩评论

暂无评论...
验证码 换一张
取 消