Search code examples
javaimageimage-processingraster

How to create Image From Array of Pixel Values and known width and height..?


I have 1D array of pixel values and i can get red, green and blue this way.

int rgb[] = new int[]
        {
            (argb >> 16) & 0xff, //red
            (argb >>  8) & 0xff, //green
            (argb      ) & 0xff  //blue
        };

I know width height of image as well which I want to create. So, in total I have following data. 1) width of new image 2) height of new image 3) one dimension array of pixel value.

My supervisor has advised me to use createRaster method but function arguments are hard to understand for me. Can you suggest me some simple code? Thanks.


Solution

  • As stated in this previous SO post:

    public static Image getImageFromArray(int[] pixels, int width, int height) {
                BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
                WritableRaster raster = (WritableRaster) image.getData();
                raster.setPixels(0,0,width,height,pixels);
                return image;
            }
    

    If you are having trouble understanding what the parameters are, you should take a look at the Java Documentation.