2015-09-17 6 views
7

Ich versuche, Ambilight mit einigen LED-Streifen zu erstellen, die an einen Raspberry Pi mit Raspbian angeschlossen sind. Ich baue eine Anwendung mit Java, die die Farben der Pixel auf allen Seiten des Bildschirms auslesen muss, damit ich die LEDs hinter dem Bildschirm einfärben kann.Schnelle Bildschirmaufnahme Java

Ich habe versucht, Screenshots mit robot.createScreenCapture() zu machen, aber es dauert + - 45ms, um diese Zeile auszuführen, die dazu führt, dass die LEDs die Farbe viel zu spät ändern.

Hat jemand eine Idee, wie man einen Screenshot schneller erstellt oder wie man die Pixelfarben auf eine andere Weise bekommt, die die ms reduziert?

Dies ist die Methode, die ich zur Zeit einen Screenshot zu bekommen verwenden:

Robot robot = new Robot(); 
Rectangle area = new Rectangle(0, 0, this.screenSize.width, this.screenSize.height); 
BufferedImage bufferedImage = robot.createScreenCapture(area); //Slow line 
+1

Wer ist dieser Roboter? –

+0

@WeareBorg Roboterklasse. 'java.awt.Robot' –

+0

Sie müssen nur' robot.createScreenCapture (Bereich) ausführen; 'wenn Sie dies in einer Schleife ausführen –

Antwort

-1

Verwenden Sie die Methode getPixelColor() auf Roboter

+0

Ich habe es ausprobiert, aber es hat sich nur als langsamer als 'createScreenCapture()' erwiesen, da ich die Pixelfarben vieler Pixel bekommen muss –