Jak pracować na BufferedImage z głębią kolorów PNG

0

Witam, ten temat jest nawiazaniem do: Jakim cudem obrazek PNG waży wiecej niż GIF?. No wiec załozmy ze ładuje obrazek do zmiennej o typie BufferedImage. Ten obrazek jest w formacie PNG wiec zawiera ponad milion kolorów. Teraz zalozmy ze chcialbym odczytac wartosc RGB z pierwszeego piksela. Moge uzyc metody getRGB() i odczytac np. kolor czerwony uzywajac maski bitowej, ale to zwroci mi wartosc z przedzialu 0-255. Jest to okej podczas pracy z obrazami GIF, ale jak odczytac kolor piksela w obrazku PNG ktory ma ich ponad milion?

0

256 wartości na kanał co daje łącznie ponad 16mln (256^3) kolorów w całej palecie. W przypadku gif'a cała paleta 256 kolorów.

0

Metoda getRGB() zwraca int, a ten możesz podać w konstruktorze klasy Color i wtedy nie musisz się zastanawiać. Dodam jeszcze, że po wczytaniu do BufferedImage obrazek przestaje być GIF, PNG czy inny, bo to tylko format zapisu. BufferedImage ma jeszcze określony typ i może korzystać z mapy kolorów, ale nie ma to wpływu na metodę getRGB. Natomiast indeksowanie kolorów ma wpływ, jeżeli chciałbyś pracować na buforze danych obrazka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1