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
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.