2010-11-26 8 views
2

プロジェクトでは、ロボットがナビゲートできるJavaでマップを作成する必要があります。好ましくは、2D配列にマップを格納したいのですが、1ビットのビットマップからJavaの配列に移動する方法はわかりません。あなたは私を助けることができます?ビットマップを配列にロードする(Java)

答えて

0

あなたは1ビットのビットマップを格納するようにしかし、それははるかに効率的である、あなたは、次に

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

として配列を作成し、10×10グリッドを仮定ImageオブジェクトではなくColorオブジェクトを格納する。

2

ImageIO.read()メソッドを使用して、ビットマップをBufferedImageインスタンスに読み込むことができます。次に、BufferedImage.getRGB(int x, int y)を呼び出して、マップの特定のピクセルのカラー値を取得します。

+0

こんにちは、グリッドは800x600の測定値を使用しますので、手動で追加することはオプションではありません。私はニコラスの答えは私が現時点で試みているものだと思う。しかし、私はDataBufferバンクを読み込もうとしていますが、それは私に6000のエントリしか与えません。 480.000のエントリがあるはずですが、画像内のピクセルの量1つしか銀行が存在しないので、私はなぜ6000のエントリを得るのか分かりません。 – user521183

+0

'DataBuffer'を直接読むことで、画像の低レベルフォーマットに対処する必要があります。 'BufferImage.getRGB(int x、int y)' IMOを使う方がよいでしょう。 –

関連する問題