Veröffentlicht 21. März 200520 j Hi, ich hoffe Ihr könnt mir helfen... also ich möchte von einem bestimmten pixel in einem Frame die Farbe wissen. geht das? wenn nicht, geht das dann unter JFrame? Danke schon mal im voraus!
21. März 200520 j Direkt kenne ich da keinen Weg. Was möglich ist, ist einen Screenshot deines Frames zu erzeugen, und dann daraus den Farbwert auszulesen: public static void main(String[] args) throws Exception { // Frame erzeugen und anzeigen lassen JFrame frame = new JFrame("TEST"); frame.setBounds(10, 10, 500, 200); frame.setVisible(true); // Robot erzeugen, der den Screenshot aufnimmt Robot robot = new Robot(); Rectangle frameBounds = frame.getBounds(); BufferedImage frameImage = robot.createScreenCapture(frameBounds); // Pixel-Farbe grabben int x = 10; int y = 10; int rgbColor = frameImage.getRGB(x, y); Color color = new Color(rgbColor); }
24. März 200520 j Hi ihr beiden, hab mir gerade mal eueren Dialog durchgelesen, und hätte da eine Frage: Gibt es eine Möglichkeit wenn man einen Screenshot macht diesen dann in einer GIF oder meinetwegen auch JPG oder BMP abzuspeichern?
24. März 200520 j Gibt es eine Möglichkeit wenn man einen Screenshot macht diesen dann in einer GIF oder meinetwegen auch JPG oder BMP abzuspeichern?Na klar doch - das Stichwort heisst Encodierung. Ein Image/BufferedImage in Java selber ist ja die reine Info darüber, welches Pixel an welcher Koordinate, welche Farbe hat. Da jedes Format diese Informationen unterschiedlich auswertet musst du jetzt nur noch den richtigen Encoder für die Formate finden. Mehr Infos gibt's hier: http://www.galileocomputing.de/openbook/javainsel3/javainsel_140012.htm#Rxxjavainsel_140012256Grafikenspeichern
24. März 200520 j Thanx! Iss ja scharf! Hab nämlich vor ner wile mal versuch nen Screenshot von nem DVD-Film zu machen um das dann als Desktop-Hintergrund zu verwenden. Aber irgendwie hat MS-Paint nur ne Reverenz des Bildes Bekommen=>wenn der film weiterlief ist das Bild in MS-Paint auch weiter gelaufen. Aber so könnte es jetzt gehen.
24. März 200520 j Wenn es nicht klappt, und das ist wahrscheinlich, verwendet der Media Player ein Overlay zur Wiedergabe. Dies ist zumindest der Normalfall.
29. März 200520 j Wenn es nicht klappt, und das ist wahrscheinlich, verwendet der Media Player ein Overlay zur Wiedergabe. Dies ist zumindest der Normalfall. meinst du das auch ein JAVA-Programm so einen Screenshot nicht machen kann? Wäre echt schade. Hatte zwar noch keine Zeit es zu versuchen aber mal für den Fall es würde nichts, hast du dann ne variante auf Lager wie man sowas machen kann?
30. März 200520 j meinst du das auch ein JAVA-Programm so einen Screenshot nicht machen kann? IMO nur über den Zugriff auf Betriebssystem-Funktionen (JNI). Was Overlays angeht ist die Sache noch schwieriger, da sie in einem anderen Bereich des Grafikspeichers liegen und oft eine andere Farbrepräsentation als RGB verwenden (z.B. YUV 4:2:2). Es gibt aber wohl Hilfsprogramme, die das beherrschen. Alternativ kann man auch versuchen, sämtliche Grafikbeschleunigungen abzuschalten.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.