您好我试图用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"));
我期待一张蓝色图片......但它是黑色的。 你知道为什么吗?
答案 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)。
通过填充背景颜色来清除指定的矩形 当前绘图表面。此操作不使用 目前的油漆模式。
解决方案:改为使用fillRect()
。