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

独自空忆成欢 提交于 2019-12-07 20:25:14

问题


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.


回答1:


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.




回答2:


You could:

 InputStream is = new ByteArrayInputStream(rgb);
 Image img = ImageIO.read(is);

rgb should be a byte array.



来源:https://stackoverflow.com/questions/9094620/how-to-create-image-from-array-of-pixel-values-and-known-width-and-height

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!