Pixel-Farbe

Status
Nicht offen für weitere Antworten.

Vogi

Aktives Mitglied
Hallo,
ich habe einen JPanel und möchte relativ unkompizizert für einen beliebigen Punkt in diesem Jpanel die RGB-Werte auslesen lassen, wie geht das?
 

Schandro

Top Contributor
Mein Beispielcode (stammt aus dem Thread den eR(a^4) gepostet hat):
Java:
import javax.swing.*;
import javax.imageio.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
 
public class XXX{
 
    public static void main(String[] args){
        new XXX();}
 
 
    private JFrame window = new JFrame();
    private JPanel panel = new JPanel();
 
    public XXX(){
        window.setBounds(100,100,200,200);
 
        window.add(panel);
        panel.setLayout(new GridLayout());
 
        JButton button = new JButton("Hallo");
        button.addActionListener(actionListener);
        panel.add(button);
 
        JButton button2 = new JButton("Welt!");
        button2.addActionListener(actionListener);
        panel.add(button2);
 
 
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                window.setVisible(true);
            }
        });
 
    }
 
    ActionListener actionListener = new ActionListener(){
        public void actionPerformed(ActionEvent event){
 
            try{Thread.sleep(500);}catch(Exception e){e.printStackTrace();}
 
            final BufferedImage img = new BufferedImage(panel.getSize().width,panel.getSize().height,BufferedImage.TYPE_INT_RGB);
            panel.paintComponents(img.createGraphics());
            JFrame shower = new JFrame();
            JPanel showerPanel = new JPanel(){
                public void paintComponent(Graphics g){
                    super.paintComponent(g);
                    g.drawImage(img,0,0,null);
                }
            };
            showerPanel.addMouseListener(new MouseAdapter(){
                public void mouseReleased(MouseEvent event){
                    System.out.println(Arrays.toString(img.getData().getPixel(event.getX(),event.getY(),(int[])null)));
                }
 
            });
            shower.add(showerPanel);
            shower.setSize(img.getWidth(null),img.getHeight(null)+23);
            shower.setVisible(true);
        }
    };
 
 
}
 
Zuletzt bearbeitet:

Landei

Top Contributor
So müsste es gehen (ungetestet):
Java:
BufferedImage bi = new new BufferedImage(panel.getWidth(), panerl.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = bi.createGraphics();
panel.paint(g2);
g2.dispose();
int color = bi.getRGB(x,y);

[edit] Mist, zu spät :-D
 

Vogi

Aktives Mitglied
es wird aber immer nur der RGB-Wert "-16777216" geliefert, auch bei unterschiedlichen farben!
 

eRaaaa

Top Contributor
also bei mir nicht(zumindestens bei schandros klasse)

ausgabe z.b.:
[238, 238, 238]
[122, 138, 153]

zeig doch mal deinen code ?!
 
Zuletzt bearbeitet:

Vogi

Aktives Mitglied
Java:
final BufferedImage img = new BufferedImage(spielfläche.getSize().width,spielfläche.getSize().height,BufferedImage.TYPE_INT_RGB);
        System.out.println(Arrays.toString(img.getData().getPixel(10,10,(int[])null)));

Nun kommt immer [0,0,0]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Ein Gamepanel sei in 60x60 Pixel Quadrate aufgeteilt und isgesamt 600 Pixel breit & 300 Pixel hoch. Wie auf Quadrate zugreifen? Allgemeine Java-Themen 5
D Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert Allgemeine Java-Themen 11
U Koordinaten alle Pixel eines Dreiecks zeichnen ausgeben Allgemeine Java-Themen 5
A BufferedImage einzelne Pixel transparent machen V2.0 Allgemeine Java-Themen 2
F hex-farbwert der pixel aus bildern lesen Allgemeine Java-Themen 4
Q BufferedImage enzelne Pixel tranzparent machen Allgemeine Java-Themen 2
H2SO3- Pixel länge von String ermitteln Allgemeine Java-Themen 4
M Problem beim Umrechnen von Pixel in cm. Allgemeine Java-Themen 6
H Pixel im BufferedImage Manipulieren ? Allgemeine Java-Themen 17
U Pixel für Pixel abarbeiten Allgemeine Java-Themen 4
Ark Das effizienteste Pixel der Java-Welt Allgemeine Java-Themen 10
T Image mithilfe von DirectColorModel und Pixel erstellen Allgemeine Java-Themen 3
M JLabel an Textlänge anpassen / Textlänge in pixel Allgemeine Java-Themen 3
T Methoden Farbe auf Screenshot suchen Allgemeine Java-Themen 2
Q Eclipse Escape Sequenzen Farbe ändern Allgemeine Java-Themen 4
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
J Farbe von Buttons mehrmals ändern Allgemeine Java-Themen 5
R Farbe zu einem Eckpunkt generieren Allgemeine Java-Themen 0
B ImageView Farbe ändern Allgemeine Java-Themen 3
J Bilder halb in falscher Farbe nach kopieren aus Web Allgemeine Java-Themen 3
M Temperaturverlauf in Farbe darstellen Allgemeine Java-Themen 8
K Farbe erkannt = agieren, per Mausklick etc. Allgemeine Java-Themen 47
H Apache POI HSSF - Farbe/Rahmen etc. ohne Style-Vorlage? Allgemeine Java-Themen 4
E int Farbe Allgemeine Java-Themen 14
R Komponente hat nicht die gesetzten Eingeschaften (Text, Farbe) Allgemeine Java-Themen 3
M Farbe transparent machen Allgemeine Java-Themen 3
M JXHyperlink Farbe Allgemeine Java-Themen 2
S Class RGB Farbe Allgemeine Java-Themen 2
Z Farbe des Pixels rechts unten in einem BufferedImage? Allgemeine Java-Themen 4
R Farbe im Bild ersetzen Allgemeine Java-Themen 11
P DockingFrame Farbe der Tabs verändern Allgemeine Java-Themen 4
P JTree Farbe Allgemeine Java-Themen 14
M Swing JButton Farbe zurücksetzen Allgemeine Java-Themen 6
W Im Chat die farbe ändern Allgemeine Java-Themen 7
A System.out.println mit Farbe Allgemeine Java-Themen 6
S Farbe? (hexadezimal) Allgemeine Java-Themen 2
G Durchschnittliche Farbe eines Bildes Allgemeine Java-Themen 18
S Farbe erkennen! Allgemeine Java-Themen 3
R Umwandlung Farbe in Schwarz/Weiss Allgemeine Java-Themen 2
clemson Farbe in Datei speichern & laden Allgemeine Java-Themen 3
N Farbe ändern bei System.out.println Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben