当前位置: 首页 > 面试题库 >

如何在Java中使BufferedImage饱和?

谢豪
2023-03-14
问题内容

使a饱和的最简单方法是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)),该方法将返回图像的变灰版本i

话虽如此,我认为使BufferedImage实例饱和的最简单方法是:

BufferedImage desaturatedImage = GrayFilter.createDisabledImage(originalImage);


 类似资料:
  • 问题内容: 好的,所以我一直在尝试使用以下代码加载BufferedImage: 但是,这在运行时给了我一个类型转换错误,那么如何正确加载BufferedImage? 问题答案: 使用来代替:

  • 问题内容: 跟随,我尝试扩展而不成功,这是我的代码: 我不明白为什么它不起作用,有帮助吗? 问题答案: 提供了选择插值类型的额外灵活性。 显示的片段说明了重采样,而不是裁剪 ; 这个相关的答案解决了这个问题 ; 这里考察一些相关的例子。

  • 问题内容: 如何在Java中转换为? 请注意,现有答案显然是不正确的,因为它使用方法和,如果尚未加载图像(根据定义,它是一个异步对象),则可以返回。 请提供更正确的答案,或提供更多证明现有答案已经正确的证据。 问题答案: 如果这对您很重要,则可以使用“等待”来加载图像,然后就不必担心提供 看看JavaDocs了解更多详细信息 我不想添加任何GUI,我只需要下载图像或失败 好吧,如果您“需要下载”该

  • 问题内容: 我想知道是否有一种更有效的方法来替换BufferedImage中的颜色。目前,我使用以下方法: 我用要替换的颜色和要替换的颜色(包括透明度)填充数组。然后,我遍历图像中的每个像素。如果它与阵列中的一种颜色匹配,我将其替换为阵列中的新颜色。这是代码: 我正在处理的图像很小,约为20x20像素。但是,似乎必须有一种更有效的方法来执行此操作。 问题答案: 您可以修改基础ColorModel而

  • 问题内容: 我想在同一JFrame中显示同一图像的变体,例如在JFrame中显示图像,然后将其替换为同一图像的灰度。 问题答案: 每当您更新图像时,都必须重新粉刷。 这是一个有关该主题的简单Google提出的内容:(我将这些教程用于我的所有Java编码) Java教程:绘制图像

  • 问题内容: 我想创建一个这样,当它达到最大大小并且队列已满时,该方法将在尝试添加新任务时阻塞。我是否需要为此实现一个自定义,或者是否存在使用标准Java库执行此操作的现有方法? 问题答案: 我刚刚发现的可能解决方案之一: 还有其他解决方案吗?我更喜欢基于此的东西,因为这似乎是处理此类情况的标准方法。