Ich habe mich gefragt, wie ich die Helligkeit eines Bildes am schnellsten ändern kann. Ich habe die 'RescaleOp'-Methode implementiert, aber ich weiß nicht, ob dies die schnellste Methode ist oder andere. Hier ist meine Implementierung, wo ich Eingang ein Bild, um die Helligkeit zu ändern, und geben ein Bild:Java: Schnellste Möglichkeit, die Helligkeit eines Bildes zu ändern
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: Ich muss auch die BufferedImage zurück in ein Bild umwandeln, weil mein Computer Rendering BufferedImages nicht mag.
„... weil mein Computer Rendering BufferedImages nicht mag.“ Das ergibt überhaupt keinen Sinn. Können Sie erklären?? – ControlAltDel
Es bleibt schrecklich zurück, wenn ich mehr als 50 gleichzeitig rendere. Ich übertrage in meinem Fall über 2000. Aber ich muss nur wissen, wie man die Bildhelligkeit so schnell wie möglich ändert, so dass die Frage nicht wirklich relevant ist. – MrDrProfessorTyler
Dann würde ich vorschlagen, dass die optimale Lösung wäre, einfach die Anzahl der BufferedImages zu steuern, die Sie gleichzeitig rendern. – ControlAltDel