2009-02-22 14 views
13

Estoy seguro de que esta es una pregunta muy estúpida, pero no puedo encontrar la respuesta, no tengo experiencia con la API de Java2D. Intento crear una imagen y escribirla en GIF o PNG, y quiero que use un rotulador negro sobre fondo blanco. Si no configuro ningún color, me pongo blanco sobre negro. Si uso setPaint() (destinado a operaciones de dibujo posteriores) obtengo todo el lienzo repintado con ese color. La siguiente muestra representa todo negro.Graphics2D: ¿Dibujo negro sobre blanco?

La muestra está en Scala, pero ya se ha hecho. ¡No dude en responder en Java!

val bi = new BufferedImage(200, 400, BufferedImage.TYPE_BYTE_BINARY) 
    val g = bi.createGraphics 
    g.setBackground(Color.WHITE) 
    g.setPaint(Color.BLACK) 
    g.draw(new Rectangle(10, 10, 30, 20)) 

Respuesta

29

El método setBackground es/era sólo para uso con el método clearRect.

Rellene el rectángulo con el color de fondo antes de pintar:

int width = 200; 
int height = 400; 
BufferedImage image = new BufferedImage(width, height, 
          BufferedImage.TYPE_BYTE_BINARY); 
Graphics g = image.createGraphics(); 
g.setColor(Color.WHITE); 
g.fillRect(0, 0, width, height); 
g.setColor(Color.BLACK); 
//ready for drawing 
Cuestiones relacionadas