RGB na R,G,B

0
File plik = new File("F:\\costamktostam.jpg");
BufferedImage obrazek = ImageIO.read(plik);
System.out.println("Wartosc wynosi "+obrazek.getRGB(0, 0));

do konsola wypisuje :

Wartosc wynosi -4539718

Jak zrobić żeby z tego ciągu dostać ile wynosi R ile G ile B ?
I dlaczego jest to wartość ujemna ?

0

Jak zrobić żeby z tego ciągu dostać ile wynosi R ile G ile B ?

np. tak:

Color color = new Color(obrazek.getRGB(0,0));
System.out.println("Wartosc R wynosi "+color.getRed());
System.out.println("Wartosc G wynosi "+color.getGreen());
System.out.println("Wartosc B wynosi "+color.getBlue());

I dlaczego jest to wartość ujemna ?

http://java.sun.com/javase/6/docs/api/java/awt/Color.html#getRGB()
(Bits 24-31 are alpha, 16-23 are red, 8-15 are green, 0-7 are blue)

0

Można też bardziej wymyślnie

int rgb=obrazek.getRGB(0, 0)&0xffffff; // żeby obciąć alpha i pozbyć się minusa
int r=(rgb>>16)&0xff;
int g=(rgb>>8)&0xff;
int b=rgb&0xff;
0

wielkie dzieki :D:D:D :)
widze ze nie sprawia wam to zadnego klopotu :) , a możecie zapodać jak wczytać obrazek czarno biały ? tzn , ze wartość poszczegolnego pixela to wartość pojedyńcza od zera do chyba 255 , mam nadzieje ze jakos zrozumieliscie o co mi chodzi :)

0

żeby zamienić na szary to grey = 0.299 red + 0.587 green + 0.114 * blue

0

Witam
potrzebuje pomocy, muszę napisać program (java) który wczytuje bitmapę a następnie zaminia kolory na skale odcieni szarości mógły ktoś rozwinąć tę myśl wyżej, albo podpowiedzieć jak się za to zabrać z góry dzięki za pomoc

0

hehe wszystko masz podane wyzej:) zeby zdjęcie było w odcieniach szarości ustawiasz wartosci wszystkich kolorów w pikselu na to co Ci wyjdzie ze wzoru który jest w poście wyzej:) Pozdrawiam.

0

Mogę do tego celu użyć BufferedImage ? chodzi mi właśnie o takie szczegóły, szczerze prawie wcale nie znam javy nazw klas itp ale los sprawił, że muszę akurat w javie napisać ten programik i to do soboty więc wszelka dodatkowa pomoc (oprócz tego co znalazłem już na forum ) wskazana przy moim obecnym zaciemnieniu umysłu

0

A i owszem mozesz, bardzo przydatne są tutoriale javy np: http://java.sun.com/docs/books/tutorial/2d/images/index.html

dodatkowo polecam też zapoznać się z dokumentacją klas których uzywasz:
http://java.sun.com/j2se/1.4.2/docs/api/

są przykłady i to o co pytasz można w bardzo łatwy sposób wykminić:)

i mówiąc bardzo łatwo mam na myśli bardzo łatwo bo sam ledwo znając jave robilem podobne rzeczy pare miechów temu. Pozdrawiam.

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