Kann jemand erklären, wie man ein Array von rgb-Wert von einem BufferedImage bekommt?Get RGB eines BufferedImage
Ich habe ein Graustufenbild in einem BufferedImage und muss ein Array von 0 bis 255 Werten extrahieren, die das Bild beschreiben.
Ich weiß, dass BufferedImage korrekt ist, weil ich es in PNG speichern kann. Wenn ich jedoch int[] dataBuffInt = ((DataBufferInt) heightMap.getDataBuffer()).getData();
verwende, bekomme ich eine Menge großer negativer Zahlen.
Ich habe eine Weile gesucht und einige Hinweise auf die Verschiebung einiger Werte (post) gesehen, aber verstehe nicht wirklich, was sie sagen.
Grundsätzlich möchte ich von einem BufferedImage zu einem Array von 0 bis 255 RBG-Werte gehen.
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 versuchte int [] dataBuffInt = heightMap.getRGB (0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); Aber das gleiche Ergebnis.
@ Greg kopff Das Ergebnis ist 2 und es eingestellt wurde
Was ist das Ergebnis von BufferedImage.getType()? –
Haben Sie versucht, http://docs.oracle.com/javase/6/docs/api/java/awt/image/BufferedImage.html#getRGB%28int,%20int,%20int,%20int,%20int [], % 20int,% 20int% 29 – Garbage
@Garbage Danke für den Tipp. Ich versuchte int [] dataBuffInt = heightMap.getRGB (0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); Aber das gleiche Ergebnis. – kotoko