Zum Inhalt springen

Farbe eines bestimmten Pixels


Empfohlene Beiträge

Geschrieben

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!

Geschrieben

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);


  }

Geschrieben

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?

Geschrieben
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

Geschrieben

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.

Geschrieben
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?

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...