Java:改变图像亮度的最快方法

时间:2012-04-15 13:28:31

标签: java image bufferedimage brightness

我想知道改变图像亮度的最快方法是什么。我已经实现了'RescaleOp'方法,但我不知道这是最快的方法还是其他方法。这是我的实现,我输入一个图像,更改亮度,并返回一个图像:

public static Image setBrightness(Image i) {
    BufferedImage buff = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB);
    buff.createGraphics().drawImage(i, 0, 0, null);
    RescaleOp op = new RescaleOp(brightness, offsets, null);
    BufferedImage buff1 = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB);
    buff1.createGraphics().drawImage(buff, op, 0, 0);
    return Toolkit.getDefaultToolkit().createImage(buff1.getSource());
}

PS:我还需要将BufferedImage转换回Image,因为我的电脑不喜欢渲染BufferedImages。

1 个答案:

答案 0 :(得分:2)

我读过的所有内容都让我相信RescaleOp是最好,最快的选择