如何重置缓冲图像的亮度

时间:2014-11-07 02:23:20

标签: java

好的,我试图在短时间内改变图像的亮度,然后重置亮度。但是,当我尝试这样做时,它会使图像变暗而不是原始颜色。这是我的代码

BufferedImage image = ImageIO.read(getClass().getResource("/image.png"));
private void changeBrightness(){
    RescaleOp bright = new RescaleOp(1.5f, 0, null);
    RescaleOp normal = new RescaleOp(0.66f, 0, null);
    image = bright.filter(image, image);
    wait(0.5);
    image = normal.filter(image, image);
}

当这个方法被调用时,亮度变化很好,但是事情变得奇怪的是变回。图像变暗。我的法线亮度等级为0.66,因为1.5 / 2乘以1.5就是我想要的。如果有人知道我做错了什么,我会非常感激。

1 个答案:

答案 0 :(得分:1)

基本上,您希望保留对原始图像的引用,而不是

image = bright.filter(image, image);

你可以......

BufferedImage filtered = bright.filter(image, null);