JavaFX 8.0 - Screenshot?

  • Hallo,

    ich versuche seit zwei Tagen verzweifelt mit Java Screenshots im Konsolen-Modus zu machen. Das übliche Verfahren für Screenshots ist ja eigentlich der awt.Robot, allerdings funktioniert er im "headless-Modus", also ohne X nicht.

    Ich habe jetzt JavaFX 8.0 installiert, welches auch "headless" Snapshots machen kann, und zwar mit Scene.snapshot(null). Das Problem - man bekommt ein WritableImage und ich weiss einfach nicht, wie ich es weiterverarbeiten kann.

    Unter JavaFX 2.2 konnte man es mit SwingFXUtils umwandeln, zB in BufferedImage umwandeln, aber was macht man mit JavaFX 8.0 ?!

    Wäre für jede Hilfestellung dankbar!

    Theo

    • Offizieller Beitrag

    Hey Harumpel,

    ohne genauer die Methoden zu kennen würde ich sagen Java ist abwärtskompatibel...
    Heißt die snapshot Methode ist in 8.0 auch noch enthalten.
    Ein kleiner Blick in die API verrät auch das die Methoden noch da ist ;)


    viele Grüße
    Turael

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

    Einmal editiert, zuletzt von Turael (10. Februar 2014 um 07:31)

  • Hallo Turael,

    möglicherweise gibt es diesen Teil von JavaFX 8 nicht für den RaspberryPi/Arm! Ich kann Application, Event, Scene und Stage einbinden, aber der Package-Teil javafx.embed scheint nicht zu existieren!

    Viele Grüße,
    Theo

  • Java 8 für den Raspberry PI kann JavaFX aber KEIN Swing.

    Nun weiß ich nicht genau, was du vorhast, aber das könnte ein Ansatz sein:

    Scene scene = ...
    ...
    ImageView snapView = new ImageView();
    snapView.setImage(lScene.snapshot(null));
    Image image = snapView.getImage();
    ...

    Hoffe, das hilft.

  • Mein Anwendungsfall ist: in der Shell den DOS-Emulator rpix86 ausführen, regelmässig Screenshots machen und auswerten.

    Danke, guenter, der Hinweis, dass der RPi kein Swing kann ist sehr wertvoll! Ich war nämlich schon ganz verrückt geworden bei dem Gedanken, das Java 8 nicht richtig konfiguriert zu haben.

    Zu Deinem Code: Hilft auf jeden Fall auch weiter! Ich kann daraus einen PixelReader generieren und die einzelnen Pixel auslesen.

    Ist es irgendwie möglich, ein Image als JPEG oder PNG abzuspeichern?

    Einmal editiert, zuletzt von Harumpel (11. Februar 2014 um 01:01)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!