如何在java中创建图形对象?

时间:2015-03-09 15:11:33

标签: java image graphics

您好我试图用java生成图像

int width = 640; int height= 480;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    Graphics g2 =  image.getGraphics();
    g2.setColor(Color.BLUE);
    g2.clearRect(0, 0, width, height);
    ImageIO.write(image, "PNG", new File(path+index+".png"));

我期待一张蓝色图片......但它是黑色的。 你知道为什么吗?

2 个答案:

答案 0 :(得分:4)

它是黑色而不是蓝色,因为clearRect使用背景颜色填充矩形,这不是您使用setColor设置的颜色。

clearRect的API文档说:

  

通过使用当前绘图表面的背景颜色填充指定的矩形来清除它。此操作不使用当前的绘画模式。

     

从Java 1.1开始,屏幕外图像的背景颜色可能与系统有关。 应用程序应使用setColor后跟fillRect,以确保将屏幕外图像清除为特定颜色。

因此,请使用fillRect代替clearRect

g2.setColor(Color.BLUE);
g2.fillRect(0, 0, width, height);

答案 1 :(得分:1)

Graphics::clearRect() 使用当前的Color(或者更确切地说:Paint)。

Javadoc

  

通过填充背景颜色来清除指定的矩形   当前绘图表面。此操作不使用   目前的油漆模式。

解决方案:改为使用fillRect()