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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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