Graphics2D: чернение на белом?

Я уверен, что это очень глупый вопрос, но я не могу найти ответ, я не знаком с API Java2D. Я пытаюсь создать изображение и записать его в GIF или PNG, и я хочу, чтобы он использовал черную ручку на белом фоне. Если я не устанавливаю никаких цветов, я становлюсь белым на черном. Если я использую setPaint() (предназначенный для последующих операций рисования), я получаю весь холст, перекрашенный этим цветом. Следующий пример отображает все черное.

Образец находится в Scala, но вы получаете идею. Не стесняйтесь отвечать на 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))

Ответы

Ответ 1

setBackground метод есть/использовался только для clearRect.

Заполните прямоугольник цветом фона перед рисованием:

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