我有一维像素值数组,我可以通过这种方式获得红色,绿色和蓝色。
int rgb[] = new int[]
{
(argb >> 16) & 0xff, //red
(argb >> 8) & 0xff, //green
(argb ) & 0xff //blue
};
我知道我想要创建的图像宽度高度。 所以,我总共有以下数据。 1)新图像的宽度 2)新图像的高度 3)像素值的一维数组。
我的主管建议我使用createRaster方法,但函数参数对我来说很难理解。 你能给我一些简单的代码吗? 感谢。
答案 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应该是一个字节数组。