PixelFarbe ermitteln und in Fenster zeichnen

T

Threadersteller

Gast
Hallo.
Ich habe ein Problem und zwar:
ICh versuche die Pixelfarben der Koordinaten x[0 - 200] und y[0 - 100] zu ermitteln und auf ein neues Fenster zu zeichnen. So in der Art wie ein kleiner Screenshot.
Ich habe also eine KLasse Test(Die liest die ganzen Pixelkoordinaten aus und zeichnet) und eine KLasse Zeichen(die führt es anschließen aus.

Das ermitteln der Farben klappt insofern, aber mir fällt es schwer die Methode apint in der Klasse Test zu öffnen.
Der Code von Methode Test ist der:(Die meineserachstens nach wichtigen Stellen sind markiert
Java:
import java.awt.*;
/**
 * Beschreiben Sie hier die Klasse Test.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
class Test extends Frame
{
    Test()
            {

            super("Kleiner Screen");  
            setLayout(new FlowLayout());
            setSize(200,100);
            getMinimumSize();                  
            this.show();
           }
          
   (->)public void Paint(Graphics g)
   {
        int x = 1, y = 1;
        while(y <= 100)
        {
            try
            {
                //Ermitteln der Pixelfarbe
                Robot rob = new Robot();
                Color clr = rob.getPixelColor(x, y);
                System.out.println(clr);
                (->)g.setColor(clr);
            }
            catch(Exception e)
            {
                System.out.println(e);
            }        
            //Zeichnen    
            g.fillRect(x,y, 1, 1);
            x++;
            if(x > 200)
            {
                y++;
            }            
        }
    }
}

UNd hier die Klasse Zeichnen:
Java:
public class Zeichnen
{
    public static void main(String[] args)
    {
        Test t = new Test();
        t.Paint(//Hier gehört irgendetwas rein, aber ich weiß nicht was);
    }
}

Könnt ihr mir vielleicht helfen?
Ich weiß im Moment echt nicht weiter
 

madboy

Top Contributor
Groß/Kleinschreibung beachten. Es heißt
Code:
paint
, nicht
Code:
Paint
und neu zeichnen tust du dann mit
Code:
t.repaint();
 
T

Threadersteller

Gast
Ich habe das nun abgeändert, aber es zeichnet nicht.
ZUmindest sehe ich nichts.

Muss ich da noch irgendetwas machen?
Soll ich den neuen Code nochmal posten?
mfg
 

Marco13

Top Contributor
Veielleicht noch
Code:
if(x > 200)
{
    y++;
    [b]x=1;[/b];
}
(aber das ist insgesamt ziemlich murksig - such mal nach Stichworten wie "Java Robot Screenshot" hier im Forum oder im Netz, da gibt's besseres...)
 
T

Threadersteller

Gast
Ich weiß das diese Methode nicht die beste ist und auch nicht die schnellste, aber mir geht es einfach um das Verstehen.

Das mit dem x=1 habe ich auch schon. Aber irgendwie kommt es mir vor, als ob es wegen der while-SChleife garnicht gezeichnet wird. bzw der alte Punkt durch den neuen ersetzt wird....
Das Fentser ist nämlich absolut weiß...

Wird bei t.repaint() vielleicht nur der erste Punkt gezeichnet, oder der letzte?

mfg
 
T

Threadersteller

Gast
Ich habe nun die while-Schleife weggelassen und siehe da: Ein Punkt erscheint und flackert, aber ziemlic stark...
Sieht mir sehr danach aus, dass es immer wieder neu gezeichnet wird...

Kann es sein, dass ich alle Punkte in ein Arrey bzw List geben muss?
 

javimka

Top Contributor
Ich würde JFrame statt Frame verwenden. Das ist double buffered, dann hast du kein Flackern mehr.

Übrigens würde ich in Zeile 28 nicht bei jedem paint einen neuen Robot erstellen. Mach den doch einmal für das ganze Objekt und dann kannst du ihn immer im paint verwenden.
 

Marco13

Top Contributor
Java:
import java.awt.*;
/**
 * Beschreiben Sie hier die Klasse Test.
 *
 * @author (Ihr Name)
 * @version (eine Versionsnummer oder ein Datum)
 */
class CrappyDrawTest extends Frame
{
 public static void main(String[] args)
    {
        CrappyDrawTest t = new CrappyDrawTest();
    }

    CrappyDrawTest()
            {

            super("Kleiner Screen");
            setLayout(new FlowLayout());
            setSize(200,100);
            setLocation(200,100);
            getMinimumSize();
            this.show();
           }

   public void paint(Graphics g)
   {
        int x = 1, y = 1;
        while(y <= 100)
        {
            try
            {
                //Ermitteln der Pixelfarbe
                Robot rob = new Robot();
                Color clr = rob.getPixelColor(x, y);
                System.out.println(clr);
                g.setColor(clr);
            }
            catch(Exception e)
            {
                System.out.println(e);
            }
            //Zeichnen
            g.fillRect(x,y, 1, 1);
            x++;
            if(x > 200)
            {
                y++;
                x=1;
            }
        }
    }
}

Tut doch...? ???:L
 
T

Threadersteller

Gast
Vielen Dank werde ich machen
Aber bei extend JFrame steht da: cannot find symbol..

Aber er zeichnet es bei mir immer noch nicht...
Irgendetwas stimmt nicht mit meine while-Schleife.

WEnn ich sie weglasse funktioniert alles wunderbar, außer, dass halt nur ein Punkt angezeigt wird...
 
T

Threadersteller

Gast
@Marco13:
Dieses Programm funktioniert nur indirekt:
Es gibt mir alle Farben uas, aber beginnt immer wenn es am Ende angelang ist wieder von vorne und das Fenster bleibt weiß...

Ich schau mal ob ich das noch irgendwie fixen kann.
mfg
 

madboy

Top Contributor
Wenn Marco13 sagt, das Programm läuft dann glaube ich ihm das. Allerdings wollte ich nicht so lange warten, bis ich ein Bild sehe (Pro Zeile ca. 10 Sekunden bei mir hier). Daher habe ich mir erlaubt, das zu beschleunigen und von pixelweisem auf Lesen und Malen eines Bildes umzustellen:

Java:
import java.awt.AWTException;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;


public class TestTest extends Frame {

   private BufferedImage img;

   public static void main(String[] args) {
      new TestTest();
   }

   public TestTest() {

      super("Kleiner Screen");
      try {
         Robot rob = new Robot();
         img = rob.createScreenCapture(new Rectangle(200, 100));
         
      } catch (AWTException e) {
         e.printStackTrace();
      }

      setSize(200, 100);
      setLocation(200, 100);
      this.show();
   }

   @Override
   public void paint(Graphics g) {
      g.drawImage(img, 0, 0, null);
   }
}
 
T

Threadersteller

Gast
Ja mit deinem Programm geht es viel schneller.
Vielleicht habe ich auch wirklich zu kurz gewartet(2min) und es ist deswegen kein Bild gekommen..

Ich werde mir also mal deinen Code durchlesen und versuchen ihn zu verstehen.^^

mfg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Pixelfarbe abfragen Java Basics - Anfänger-Themen 8
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
S Bildgröße ermitteln & setSize() übergeben Java Basics - Anfänger-Themen 6
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
R Hangman-Spiel-zufälliges Wort ermitteln Java Basics - Anfänger-Themen 4
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
H Palindrom ermitteln Java Basics - Anfänger-Themen 21
J Datum ermitteln ? Java Basics - Anfänger-Themen 14
M Beliebtesten Film ermitteln Java Basics - Anfänger-Themen 6
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
H Bei forEach Index des Elements ermitteln Java Basics - Anfänger-Themen 17
B DHCP-Server Adresse ermitteln Java Basics - Anfänger-Themen 4
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
J Ein Wort aus einer Datei zufällig ermitteln Java Basics - Anfänger-Themen 3
V Erste Schritte Potenzen b^n mittels Schleife ermitteln Java Basics - Anfänger-Themen 7
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
C Laufzeit eines Sortier-Algorithmus ermitteln Java Basics - Anfänger-Themen 4
O 2 Maximalwerte und Minimalwerte aus Array ermitteln Java Basics - Anfänger-Themen 9
L Fortschritt ermitteln Java Basics - Anfänger-Themen 18
N Erste Schritte HSV color space - schwarz und weiß nur anhand von Saturation oder Multiplikator ermitteln Java Basics - Anfänger-Themen 14
N Wahrscheinlichkeiten ermitteln Java Basics - Anfänger-Themen 2
L Objekt Typ zur Laufzeit ermitteln Java Basics - Anfänger-Themen 1
J Schwierigkeitsgrad eines Wortes mit Morsecode ermitteln Java Basics - Anfänger-Themen 18
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
G Größten und kleinsten Wert im Array ermitteln? Java Basics - Anfänger-Themen 7
G Wie kann ich diesen Wert ermitteln? Java Basics - Anfänger-Themen 4
T Rekursiv Tiefe eines binären Suchbaums ermitteln Java Basics - Anfänger-Themen 22
D Maximale Teilsumme ermitteln Java Basics - Anfänger-Themen 6
MiMa Jüngstes Datum ermitteln Java Basics - Anfänger-Themen 4
S Compiler-Fehler im array Maximum ermitteln Java Basics - Anfänger-Themen 6
V Querprodukt ermitteln Java Basics - Anfänger-Themen 6
L Array: Summe aller geraden und ungeraden Zahlen ermitteln Java Basics - Anfänger-Themen 9
Joew0815 Int to string und primzahle ermitteln Java Basics - Anfänger-Themen 2
F Jalousie Positionen ermitteln Java Basics - Anfänger-Themen 4
C Klassen aus einem Package ermitteln und per Laufzeit laden Java Basics - Anfänger-Themen 17
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
C OOP Schwerpunkt eines Dreiecks ermitteln Java Basics - Anfänger-Themen 4
I Zeitraum eines Monats ermitteln und in String ausgeben Java Basics - Anfänger-Themen 1
S Datentypen Dimensionalität eines Arrays ermitteln Java Basics - Anfänger-Themen 2
V Anzahl von gleichen Werten in einem Int-Array ermitteln Java Basics - Anfänger-Themen 4
D TreeMap: Höheren Key ermitteln und den Value liefern Java Basics - Anfänger-Themen 3
J In einem Array die größte Zahl ermitteln und Faktorisieren. Java Basics - Anfänger-Themen 5
V Array ermitteln - in Quellcode speichern Java Basics - Anfänger-Themen 15
H JEditorPane: ermitteln, ob Zeichen unterstrichen Java Basics - Anfänger-Themen 4
M Monat der letzen 12 Monate ermitteln Java Basics - Anfänger-Themen 8
MiMa String Datum ermitteln Java Basics - Anfänger-Themen 9
H Veränderung eines Objekts ermitteln Java Basics - Anfänger-Themen 6
S Wochentage ermitteln Java Basics - Anfänger-Themen 5
S Ermitteln und Setzen der Attribute eines Objektes Java Basics - Anfänger-Themen 6
F Den Gewinner der Tordifferenz ermitteln Java Basics - Anfänger-Themen 5
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
S MP3 Spielzeit mit jid3lib ermitteln? Java Basics - Anfänger-Themen 3
M Größer der eigenen .jar ermitteln Java Basics - Anfänger-Themen 4
M Größe einer Datei via. Link ermitteln Java Basics - Anfänger-Themen 9
R Alle Klassen ermitteln, die Interface implementieren / Reflection Java Basics - Anfänger-Themen 51
C Nächsten Montag ermitteln Java Basics - Anfänger-Themen 19
W Position in ArrayList ermitteln Java Basics - Anfänger-Themen 4
B Font Namen ermitteln Java Basics - Anfänger-Themen 7
C least significant bit einer HexMaske für Bitshift ermitteln Java Basics - Anfänger-Themen 2
B Pfad einer .jar im Programm ermitteln Java Basics - Anfänger-Themen 13
H "Index" eines Button ermitteln Java Basics - Anfänger-Themen 7
C Bereits geöffnetes Object ermitteln Java Basics - Anfänger-Themen 5
S ermitteln eines Wertes im StringArray Java Basics - Anfänger-Themen 4
D Ermitteln des kleinsten Messwertes von jedem Tag Java Basics - Anfänger-Themen 15
C Hösten Wert aus mehren Listen ermitteln Java Basics - Anfänger-Themen 2
D Input/Output Pfad richtig ermitteln Java Basics - Anfänger-Themen 12
P Dateigröße von Ordnern ermitteln Java Basics - Anfänger-Themen 8
T Enum - Key als Value ermitteln Java Basics - Anfänger-Themen 7
J den x und y Wert beim klicken der Maus ermitteln Java Basics - Anfänger-Themen 2
M float/double Anzahl Nachkommastellen ermitteln Java Basics - Anfänger-Themen 18
G Sekunden bis zum Ende der aktuellen Kalenderwoche ermitteln! Java Basics - Anfänger-Themen 3
F Substring mittels RegEx ermitteln/ersetzen? Java Basics - Anfänger-Themen 2
M Datentypen Generics: Exacten Typ ermitteln Java Basics - Anfänger-Themen 6
Spin Backgrond Color von Image ermitteln Java Basics - Anfänger-Themen 2
M Größe einer Konsole ermitteln Java Basics - Anfänger-Themen 2
c_sidi90 Größe von Dateien aus File Array ermitteln Java Basics - Anfänger-Themen 12
P Ermitteln aller perfekten Zahlen Java Basics - Anfänger-Themen 12
D Pfad zu "Eigenen Dateien" ermitteln Java Basics - Anfänger-Themen 8
A Relativer Pfad zu einem File ermitteln Java Basics - Anfänger-Themen 2
P Bestimmte Zeilen einer Datei ermitteln ? Java Basics - Anfänger-Themen 30
M Datentypen Wrapperclass eines Primitives ermitteln Java Basics - Anfänger-Themen 4
StrikeTom Shift + pfeiltaste ermitteln Java Basics - Anfänger-Themen 3
H Wie Projekt-Ordner-Pfad ermitteln? Java Basics - Anfänger-Themen 11
A Aktueller Pfad des Programms (.jar) ermitteln Java Basics - Anfänger-Themen 10
P Externe IP ermitteln? Java Basics - Anfänger-Themen 5
J Das Maximum einer Liste ermitteln Java Basics - Anfänger-Themen 8
S Klassennamen ermitteln Java Basics - Anfänger-Themen 10
R Stoppuhr: Zeit ermitteln und übergeben - Variable static?? Java Basics - Anfänger-Themen 6
W Average-Color (Durchschnittsfarbe eines Bildes ermitteln) Java Basics - Anfänger-Themen 16
D Ermitteln der Anzahl gleicher Nachkommastellen 2er Zahlen Java Basics - Anfänger-Themen 9
P Zeilenanzahl einer *.txt ermitteln Java Basics - Anfänger-Themen 6
B Teiler einer Zahl ermitteln Java Basics - Anfänger-Themen 12
H Dimensionen eines 2D-Arrays ermitteln Java Basics - Anfänger-Themen 5
Z Gesperrte JTable auslesen bzw feldposition ermitteln Java Basics - Anfänger-Themen 10
S Anzahl der Wochen eines Monats ermitteln Java Basics - Anfänger-Themen 19
F Hüllklassentyp einer Referenzvar ermitteln? Java Basics - Anfänger-Themen 3
G IP-Adresse ermitteln??? Java Basics - Anfänger-Themen 3
K Dateipfad ermitteln Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben