2009-02-22 34 views
13

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

该示例是在斯卡拉,但你明白了。随意用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)) 

回答

29

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