Tengo un BufferedImage transparente creada con el siguiente código (no es relevante cómo se crea, creo):Borrar un BufferedImage transparente lo más rápido posible
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
Rectangle screen = transformationContext.getScreen();
// Create an image that supports transparent pixels
return gc.createCompatibleImage((int) screen.getWidth(), (int) screen.getHeight(),
Transparency.BITMASK);
¿Cómo se borra la imagen (imagen vacía en el mismo estado que se creó) de la manera más rápida posible sin volver a crear la imagen? Volver a crear la imagen supone una carga para GC, pausando la máquina virtual y congelando la interfaz de usuario.
'clearRect' se dice que está en desuso desde 1.1, aunque no está etiquetado como tal (¿tal vez porque las anotaciones aún no existían?). La forma preferida es ahora: 'graphics.setComposite (AlphaComposite.Clear); graphics.fillRect (0, 0, SIZE, SIZE); graphics.setComposite (AlphaComposite.SrcOver); '(suponiendo que SrcOver fuera el compuesto que usaste antes, y es el valor predeterminado) Esto está realmente cerca de la implementación de' clearRect'. –
no hay etiqueta de desaprobación en el documento de Java, así que supongo que todavía es válido –
@ adrian.tarau a eso se refiere; anotaciones Los javadocs se generan automáticamente; dado que la anotación '@ Deprecated' no está en el código (aún no existía), entonces no estaba en los javadocs. – Qix