Graphics2D:白底黑?

我确定这是一个非常愚蠢的问题,但我找不到答案,我对Java2D API没有经验。 我正在尝试创建一个图像并将其写入GIF或PNG,我希望它在白色背景上使用黑色笔。 如果我没有设置任何颜色,我会变成黑色的白色。 如果我使用setPaint()(用于后续绘制操作),我会用整个canvas重新绘制该颜色。 以下示例将整个事件呈现为黑色。

示例是在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)) 

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