1

画像の明るさを変更する最速の方法は何だろうと思っていました。「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: また、私のコンピューターは BufferedImages のレンダリングを好まないため、BufferedImage を Image に戻す必要があります。

4

1 に答える 1

2

私が読んだすべてのことから、RescaleOpが最良で最速のオプションであると信じています。

于 2012-04-15T13:38:33.330 に答える