Holen Sie sich RGB eines BufferedImage

Kann jemand erklären, wie ein Array mit einem RGB-Wert aus einem BufferedImage abgerufen werden kann?

Ich habe ein Graustufenbild in einem gepufferten Bild und muss ein Array von 0 bis 255 Werten extrahieren, das das Bild beschreibt.
Ich weiß, dass das gepufferte Bild korrekt ist, weil ich es in PNG speichern kann. Allerdings wenn ich benutzeint[] dataBuffInt = ((DataBufferInt) heightMap.getDataBuffer()).getData(); Ich bekomme eine Menge negativer Zahlen.

Ich habe eine Weile gesucht und einige Hinweise auf das Verschieben einiger Werte gesehen (Post) aber verstehe nicht wirklich, was sie sagen.

Grundsätzlich möchte ich von einem BufferedImage zu einem Array von 0 bis 255 RBG-Werten wechseln.
Ich bin mir nicht sicher, ob ich mich richtig erklärt habe. Bitte fragen Sie nach weiteren Details.

Bearbeiten:
@Garbage Danke für den Tipp. Ich habe versucht, int [] dataBuffInt = heightMap.getRGB (0, 0, heightMap.getWidth (), heightMap.getHeight (), null, 0, heightMap.getWidth ()); Aber bekommen Sie das gleiche Ergebnis.
@Greg Kopff Das Ergebnis ist 2 und es wurde auf TYPE_INT_ARGB gesetzt

Antworten auf die Frage(1)

Ihre Antwort auf die Frage