Analiza pulpitu(ekranu użytkownika)

Analiza pulpitu(ekranu użytkownika)
I9
  • Rejestracja:około 14 lat
  • Ostatnio:około miesiąc
  • Postów:55
0

Witam
Czy jest jakaś klasa, która służy do analizowania zawartości ekranu(tego co widzi użytkownik na ekranie). Najlepiej jakbym mógł uzyskać tablice pikseli z wartościami RGB. Jeżeli nie ma takiej to może jest klasa dzięki której mogę zrobić zrzut ekranu a potem go przeanalizować. Z góry dzięki za pomoc


lato-zima.pl
while(question != true) {
ask();
}
DD
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:16
0

Jeśli chodzi o Javę, to ze swojej strony mogę polecić Ci QtJambi. Tu masz prosty example pisany w C++. http://doc.qt.nokia.com/4.6/desktop-screenshot.html

R9
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 11 lat
1
dev_dingo napisał(a)

Jeśli chodzi o Javę, to ze swojej strony mogę polecić Ci QtJambi. Tu masz prosty example pisany w C++. http://doc.qt.nokia.com/4.6/desktop-screenshot.html

Nie, to głupi pomysł. Bardzo. Kodziłem w QtJambi przez 2 dni, wcześniej ok. rok w C++ i zrezygnowałem na rzecz Swinga.
W Javie też można łatwo robić screenshoty:
http://www.javalobby.org/forums/thread.jspa?threadID=16400&tstart=0
http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/BufferedImage.html
Z BufferedImage wyciągasz kolor pixela przez getRGB(x,y), model ARGB: możesz ręcznie dzielić i modować to jako inta(szybko), albo zrobić z tego Color poprzez Color col=new Color(screen.getRGB(x,y));

I9
  • Rejestracja:około 14 lat
  • Ostatnio:około miesiąc
  • Postów:55
0

Ok, udało się
A jak teraz na obiekcie BufferedImage coś namalować a potem zapisać. Namalować umiem

Kopiuj
 
BufferedImage bf = ...;
Graphics g = bf.getGraphics();

I mogę rysować. Nie wiem jak później ponownie wgrać to BufferedImage i zapisać za pomocą ImagrIO.write();


lato-zima.pl
while(question != true) {
ask();
}
edytowany 1x, ostatnio: impimp94
R9
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 11 lat
0

Jak pobierzesz Graphics, czy też Graphics2D (getGraphics() zwraca w rzeczywistości Graphics2D, tylko trzeba rzutować) z BufferedImage, to rysujesz bezpośrednio na tym obrazie, czyli tylko pobierasz Graphics2D, rysujesz np. g2d.fillRect(10,10,100,100); i od razu możesz zapisać na dysku ten obraz używając obraz, z którego pobierasz Graphics2D.

XA
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:3
0

Zamiast używać QT do robienia screenshootów, możesz wykorzystać klasę Robot http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html

I9
  • Rejestracja:około 14 lat
  • Ostatnio:około miesiąc
  • Postów:55
0

Oglądałem metody klasy Robot i znalazłem metody typu(KeyPress itp). Czy one symulują wciśnięcie danego przycisku?


lato-zima.pl
while(question != true) {
ask();
}
0

Tak.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.