图形2D:在白底下画黑字?

2022-09-02 20:11:08

我确信这是一个非常愚蠢的问题,但我找不到答案,我对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

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

答案 2

推荐