好的,我试图在短时间内改变图像的亮度,然后重置亮度。但是,当我尝试这样做时,它会使图像变暗而不是原始颜色。这是我的代码
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就是我想要的。如果有人知道我做错了什么,我会非常感激。
答案 0 :(得分:1)
基本上,您希望保留对原始图像的引用,而不是
image = bright.filter(image, image);
你可以......
BufferedImage filtered = bright.filter(image, null);