2010-11-26 4 views
2

Для проекта мне нужно сделать карту на Java, с которой робот может перемещаться. Предпочтительно, я хотел бы сохранить карту в 2D-массиве, но я не знаю, как перейти от 1-битного битового массива к массиву в Java. Можете ли вы мне помочь?Загрузить битмап в массив (Java)

ответ

0

Предполагая, что 10 по 10 сетке, то вы можете создать массив, такие как

Image[][] grid = new Image[10][10]; 

Тогда

for (int x = 0; X < grid.length; X++) { 
    for (int y = 0; y < grid[x].length; y++) { 
    grid[x][y] = theImageForThisPosition; 
    } 
} 

Однако, как вы сохраняете 1 битовые растровые изображения, было бы гораздо более эффективным для хранения объектов Color, а не объектов Image.

2

Вы можете использовать метод ImageIO.read(), чтобы загрузить растровое изображение в экземпляр BufferedImage. Затем вызовите BufferedImage.getRGB(int x, int y), чтобы получить значение цвета для отдельного пикселя вашей карты.

+0

Привет, сетка Я собираюсь использовать меры 800x600, поэтому добавление вручную не является вариантом. Я думаю, что ответ Николаса - это то, что я пытаюсь сделать в данный момент. Тем не менее, я пытаюсь читать банки DataBuffer, но это дает мне только 6000 записей. В то время как должно быть 480 000 записей; количество пикселей в изображении. Существует только 1 банка, поэтому я понятия не имею, почему я получаю только 6000 записей. – user521183 2010-11-28 11:48:20

Смежные вопросы