如何从像素值数组创建图像和已知的宽度和高度..?

时间:2012-02-01 10:55:43

标签: java image image-processing raster

我有一维像素值数组,我可以通过这种方式获得红色,绿色和蓝色。

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

我知道我想要创建的图像宽度高度。 所以,我总共有以下数据。 1)新图像的宽度 2)新图像的高度 3)像素值的一维数组。

我的主管建议我使用createRaster方法,但函数参数对我来说很难理解。 你能给我一些简单的代码吗? 感谢。

2 个答案:

答案 0 :(得分:2)

this之前的SO帖子中所述:

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;
        }

如果您无法理解参数是什么,请查看Java Documentation

答案 1 :(得分:0)

你可以:

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

rgb应该是一个字节数组。