Czy ktoś może wyjaśnić, jak uzyskać tablicę wartości rgb z BufferedImage?Uzyskaj RGB z BufferedImage
Mam obraz w skali szarości w obrazie BufferedImage i muszę wyodrębnić tablicę od 0 do 255 wartości opisujących obraz.
Wiem, że obraz BufferedImage jest poprawny, ponieważ mogę go zapisać do PNG. Jednak jeśli użyję int[] dataBuffInt = ((DataBufferInt) heightMap.getDataBuffer()).getData();
, otrzymam mnóstwo ogromnych liczb ujemnych.
Szukałem przez chwilę i widziałem kilka odniesień do przesuwania niektórych wartości (post), ale tak naprawdę nie rozumiem, co mówią.
Zasadniczo chcę przejść z BufferedImage do tablicy wartości od 0 do 255 RBG.
Nie jestem pewien, czy dobrze się wyjaśniłem, bo trzeba poprosić o więcej szczegółów.
Edycja:
@Garbage Dzięki za cynk. Próbowałem int [] dataBuffInt = heightMap.getRGB (0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); Ale uzyskaj taki sam wynik.
@Greg Kopff Wynik to 2 i został ustawiony na TYPE_INT_ARGB
Jaki jest wynik BufferedImage.getType()? –
Czy próbowałeś http://docs.oracle.com/javase/6/docs/api/java/awt/image/BufferedImage.html#getRGB%28int,%20int,%20int,%20int,%20int [], % 20int,% 20int% 29 – Garbage
@Garbage Dzięki za cynk. Próbowałem int [] dataBuffInt = heightMap.getRGB (0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); Ale uzyskaj taki sam wynik. – kotoko