2010-11-26 6 views
2

Für ein Projekt muss ich eine Java-Map erstellen, durch die ein Roboter navigieren kann. Am liebsten würde ich die Karte in einem 2D-Array speichern, aber ich weiß nicht, wie ich von der 1 Bit Bitmap zu einem Array in Java gehen soll. Kannst du mir helfen?Bitmap in Array laden (Java)

Antwort

0

10 um 10 grid Angenommen, dann würde man ein Array wie

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

Dann

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

jedoch, wie Sie speichern 1 bit Bitmaps, wäre es viel effizienter erstellen sein, um Farbobjekte statt Bildobjekte zu speichern.

2

Sie können die Methode ImageIO.read() verwenden, um Ihre Bitmap in eine BufferedImage Instanz zu laden. Rufen Sie dann BufferedImage.getRGB(int x, int y) an, um den Farbwert eines bestimmten Pixels Ihrer Karte zu ermitteln.

+0

Hallo, Das Grid Ich werde Maßnahmen 800x600 verwenden, so manuell hinzufügen ist keine Option. Ich denke, Nicolas 'Antwort ist, was ich gerade versuche. Ich versuche jedoch, die DataBuffer-Banken zu lesen, aber es gibt mir nur 6000 Einträge. Während es 480.000 Einträge geben sollte; die Anzahl der Pixel im Bild. Da nur eine Bank vorhanden ist, habe ich keine Ahnung, warum ich nur 6000 Einträge bekomme. – user521183

+0

Wenn Sie den 'DataBuffer' direkt lesen, müssen Sie sich mit dem Low-Level-Format Ihres Bildes beschäftigen. Sie bleiben besser bei BufferImage.getRGB (int x, int y) 'IMO. –