转载: http://www.codes51.com/itwd/1242625.html
问题:BufferedImage 图片背景色黑色问题
描述:
贴代码: 背景一直是黑色,网上的方案都是了下没解决掉,我是想让背景色为白色可就是不行,求解
BufferedImage image = new BufferedImage(600, 600,
BufferedImage.TYPE_INT_RGB);
dg = (Graphics2D) image.createGraphics();
dg.setColor(Color.red);
dg.setBackground(Color.WHITE);
dg.drawLine(startx, starty, x, y);
dg.dispose();
ImageIO.write(image, "jpg", new File("D://Tomcat//M//" + "test"+ count + ".jpg"));
解决方案1:
dg = (Graphics2D) image.createGraphics();;
dg.setColor(Color.WHITE);//设置笔刷白色
dg.fillRect(0,0,600,600);//填充整个屏幕
dg.setColor(Color.BLACK); //设置笔刷
g.setColor(Color.red);
g.drawLine(startx, starty, x, y);
dg.drawLine(startx, starty, x, y);
解决方案2:
BufferedImage image = new BufferedImage(600, 600,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) image.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(0,0,600,600);//填充整个屏幕
g.setColor(Color.BLACK);
g.drawLine(10, 100, 300, 100);
g.dispose();
File file = new File("d:\\test.jpg");
ImageIO.write(image, "jpg", file);
解决方案3:
BufferedImage image = new BufferedImage(600, 600,
BufferedImage.TYPE_INT_RGB);
dg = (Graphics2D) image.createGraphics();
dg.fillRect(0,0,600,600);//填充整个屏幕
dg.setColor(Color.red);
dg.drawLine(startx, starty, x, y);
dg.dispose();
设置之后整个背景是白色,但是笔刷笔迹也变为了白色,设置成除白色之外的还是不起作用。
解决方案4:
先fill一下。默认的TYPE_INT_RGB都是0,都是黑色的。
解决方案5:
你可以先画个白框,刚好是图像的大小。