【问题标题】:Adjust brightness and contrast of BufferedImage in Java在 Java 中调整 BufferedImage 的亮度和对比度
【发布时间】:2011-03-26 21:15:10
【问题描述】:

我正在使用一些框架处理一堆图像,我得到的只是一堆BufferedImage 对象。不幸的是,这些图像真的很暗,我想把它们调亮并稍微调整一下对比度。

类似:

BufferedImage image = something.getImage();
image = new Brighten(image).brighten(0.3); // for 30%
image = new Contrast(image).contrast(0.3);
// ...

有什么想法吗?

【问题讨论】:

    标签: java graphics image-processing


    【解决方案1】:

    其实很简单。

    RescaleOp rescaleOp = new RescaleOp(1.2f, 15, null);
    rescaleOp.filter(image, image);  // Source and destination are the same.
    

    1.2 的 scaleFactor 和 15 的 offset 似乎使关于停止的图像更亮。

    耶!

    the docs for RescaleOp阅读更多内容。

    【讨论】:

    • scaleFactor和offset的范围是多少?
    • 1.2 的比例为 +20%。每个值都乘以 1.2,所以以前的 100% 变成了 120%(引用 RescaleOp 上的 javadoc,“dstElement = (srcElement*scaleFactor) + offset”)
    • Offset 15 不是很清楚,这可能需要根据特定 BufferedImage 的颜色通道样本大小进行调整。
    • is Offset value 15 用于改变图像的对比度
    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    相关资源
    最近更新 更多