Graphics2D: рисовать черным по белому? - PullRequest
15 голосов
/ 22 февраля 2009

Я уверен, что это очень глупый вопрос, но я не могу найти ответ, у меня нет опыта работы с Java2D API. Я пытаюсь создать изображение и записать его в 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 Ответ

34 голосов
/ 23 февраля 2009

Метод 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...