【问题标题】:Image Black Point Compensation in JavaJava中的图像黑点补偿
【发布时间】:2015-04-07 19:55:47
【问题描述】:

我一直在使用 ColorConvertOp 在 Java 中转换灰度图像,但注意到有时它们最终会丢失很多中间色调颜色并且看起来比应有的颜色更暗。我研究了一下,发现 Photoshop 使用黑点补偿 (BPC) 来补偿这个问题。我为 BPC here 找到了一篇文章,但这对我来说有点技术性。 Java 是否使用渲染意图或其他东西本机支持这一点,还是我必须弄清楚如何实现文档中解释的算法?我了解 BPC 的发生是因为绝对黑色是色彩空间中的不同颜色,但我需要使用 BPC 来使图像看起来相同。有什么想法吗?

我目前使用以下代码转换为新的色彩空间。

private void convertToColorSpace(ColorSpace colorSpace) {
    RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    ColorConvertOp op = new ColorConvertOp(colorSpace, hints);
    image = op.filter(image, null);
}

注意: ImageMagick 不是一个选项,因此请不要将其作为答案。

【问题讨论】:

    标签: java image colors


    【解决方案1】:

    我有一个主要基于黑点补偿 ISO 草案的解决方案,这意味着它还不是标准的,发现 here。该过程(包括变量名称)和完整的步骤定义得非常好。虽然有一个用 c 编写的 Little CMS 库,但我找不到任何 Java 原生的东西,它可能可以与 JNI 一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-30
      • 1970-01-01
      • 2013-06-07
      • 2021-01-24
      • 1970-01-01
      • 2019-03-25
      相关资源
      最近更新 更多