将位图加载到数组(Java)
对于一个项目,我需要用Java制作一个机器人可以导航的地图。最好是,我希望将贴图存储在2D数组中,但我不知道如何在Java中将1位位图转换为数组。你能帮我个忙吗?假设是10乘10的网格,那么你可以创建一个数组,比如将位图加载到数组(Java),java,arrays,image,map,bitmap,Java,Arrays,Image,Map,Bitmap,对于一个项目,我需要用Java制作一个机器人可以导航的地图。最好是,我希望将贴图存储在2D数组中,但我不知道如何在Java中将1位位图转换为数组。你能帮我个忙吗?假设是10乘10的网格,那么你可以创建一个数组,比如 Image[][] grid = new Image[10][10]; 然后 for(int x=0;x
Image[][] grid = new Image[10][10];
然后
for(int x=0;x
但是,当您存储1位位图时,存储颜色对象比存储图像对象要高效得多。您可以使用
ImageIO.read()
方法将位图加载到BufferedImage
实例中。然后,调用BuffereImage.getRGB(int x,int y)
获取地图特定像素的颜色值。Hi,我将使用的网格度量为800x600,因此手动添加不是选项。我想尼古拉斯的答案是我目前正在尝试的。然而,我试图阅读数据缓冲银行,但它只给了我6000个条目。而应为480.000条,;图像中像素的数量。现在只有一家银行,所以我不知道为什么我只收到6000条。通过直接阅读DataBuffer
,你将不得不处理图像的低级格式。你最好坚持使用BufferImage.getRGB(intx,inty)IMO。
for (int x = 0; X < grid.length; X++) {
for (int y = 0; y < grid[x].length; y++) {
grid[x][y] = theImageForThisPosition;
}
}