tags:

views:

365

answers:

1

I'm sure this is a very stupid question but I can't find the answer, I'm not experienced with the Java2D API. I'm trying to create an image and write it to GIF or PNG, and I want it to use a black pen on a white background. If I don't set any colors, I get white on black. If I use setPaint() (intended for subsequent draw operations) I get the whole canvas repainted with that color. The following sample renders the whole thing black.

The sample is in Scala but you get the idea. Feel free to answer in 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))
+3  A: 

The setBackground method is/was only for use with the clearRect method.

Fill the rectangle with the background colour before painting:

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
McDowell