How to create image in Java
java, javax.imageio
Solution
The background is black in your image because you are not giving any pixels a value except those in the rectangles. The `BufferedImage` is starting out with every pixel having RGB of (0, 0, 0), which is black. To give the entire image a white background, simply fill the entire rectangle that is the image with white.
BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
g = image.createGraphics(); // not sure on this line, but this seems more right
g.setColor(Color.white);
g.fillRect(0, 0, 100, 100); // give the whole image a white background
g.setColor(Color.blue);
for( ..... ){
g.fillRect(X , Y, width , height );
....
}
Note that my answer is about writing the image to a file with a white background, not about drawing to the JFrame with a black background. I'm not entirely sure which one you wanted.
Problem
say in my program, i have this paint() method. my wish is to create an image of the rectangles that are drawn (with the for loop). I tried the method below and it did give me those rectangles (blue color), but the background is all black. When I run program without creating image, just drawing the rect on a JFrame, the background is white. How can i fix this. ? ``` public void paint(Graphics g) { super.paint(g); BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); g = Image.getGraphics(); <<<----- is this correct? g.setColor(Color.blue); for ( ..... ) { g.fillRect(X , Y, width , height); .... } try { ImageIO.write(image, "jpg", new File("CustomImage.jpg")); }catch (IOException e) { e.printStackTrace(); } } ```