I would like to convert an array of pixels to images so that I can read each pixel of the image, I've converted the image to pixels and now what I'm trying to do is that I have a picture of an RGB circle , After converting the image to pixels I want to draw images again but Not the entire picture again , I want to draw the red circle alone , the green circle alone and the blue circle alone and store the images in a file , how can that be done ?
Here's the code that I used to convert the image to array pixels :
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.image.PixelGrabber;
import java.io.File;
import java.io.IOException;
public class BMPtoArray {
public static int[] convertToPixels(Image img) {
int width = img.getWidth(null);
int height = img.getHeight(null);
int[] pixel = new int[width * height];
PixelGrabber pg = new PixelGrabber(img, 0, 0, width, height, pixel, 0, width);
try {
pg.grabPixels();
} catch (InterruptedException e) {
throw new IllegalStateException("Error: Interrupted Waiting for Pixels");
}
if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
throw new IllegalStateException("Error: Image Fetch Aborted");
}
return pixel;
}
public static void main(String[] args) throws IOException {
BufferedImage image = ImageIO.read(new File("C:\\Users\\Mhamd\\Desktop\\3rd year
first semester\\Analysis and Coding\\labs\\2.2Java\\src\\circleRGB.bmp"));
//System.out.println(convertToPixels(image));
}
}
Here's the image :
so this is basically what I'm trying to achieve
[![This is what I want to Achieve][2]][2]


BufferedImageand save them separately? Even if the image is generated dynamically, you should be able to keep track of the individual changes, then recreate them in each of their own image. Or keep an array ofBufferedImages for each element that you never display. That'll take up lots of RAM, but it'd be similar to Layers in Photoshop and Gimp.BufferedImage, you don’t need such complicated approaches, seegetRGBandsetRGB