Linux: Startfenster, Capture-Bildschirm - Linux, Screenshot, Capture, Bilderfassung, Screen-Grab

Ich muss ein Befehlszeilenprogramm für Red Hat Linux schreiben, das ein Fenster startet und sein Aussehen als JPEG auf der Festplatte festhält.

Typischerweise haben die Zielmaschinen keine Grafikkarten, aber wir können beliebige Softwarekomponenten (z. B. X) installieren.

Frage oder zwei:

Welche Bibliotheken oder Tools könnten Sie dafür vorschlagen?

Wenn ich etwas wie GTK + verwenden würde, um dieses Werkzeug zu erstellen, würde die fehlende Grafikkarte die Ausführung behindern?

ich sah scrot, scheint jedoch nicht die Erfassung eines bestimmten Fensters ohne Benutzerinteraktion zu unterstützen.

Antworten:

4 für die Antwort № 1

Es klingt, als würdest du den "benutzen" müssenvirtueller Framebuffer Treiber für den X.org Server, kombiniert mit dem xwd, NetPBM, und CJPEG Dienstprogramme.

Ich bin mir über die spezielle Konfiguration nicht sicherSie werden für den X-Server brauchen, aber Sie müssen wahrscheinlich sicherstellen, dass der Server, den Sie verwenden, den virtuellen Framebuffer-Treiber eingebaut hat. Der virtuelle Framebuffer-Treiber ist ein Bildschirmtreiber, wie er zum Herstellen einer Verbindung mit einer NVidia- oder ATI-Videokarte verwendet wird, mit der Ausnahme, dass die "Ausgabe" ein Stück Speicher ist, der die Pixel und keinen LCD-Bildschirm enthält.

xwd ist eines der Standard-X-Tools, die einen X Window Dump erstellen können. xwd kann in der Befehlszeile angegeben werden, welches Fenster gelöscht werden soll. Es gibt einen funky "xwd" formatierten Stream zum Standard aus.

Die NetPBM-Dienstprogramme sind eine Sammlung von BefehlenLinientools, die ein Bildformat in ein anderes konvertieren. Es enthält eine, die xwdtoppm konvertiert. PPM ist ein sehr einfaches, nicht komprimiertes Format, das das Zwischenformat ist, das von den meisten NetPBM-Tools verstanden wird.

cjpeg ist Teil der Standard-Sammlung von JPEG-Tools und wird wahrscheinlich installiert, wenn Sie auch über NetPBM verfügen. cjpeg kann einen Strom von PPM-Bytes aufnehmen und einen Strom von JPEG-Bytes ausgeben.

Durch die Magie von Unix-Skripten und Pipes können Sie diese Dienstprogramme zusammenführen, um die Anwendung mit dem Fenster zu starten. Rufen Sie xwd, xwdtoppm und cjpeg auf, um das Abbild in eine Datei zu speichern.


0 für die Antwort № 2

Sie könnten versuchen, vncserver auszuführen, um einVirtuelle X-Fenster-Anzeige - keine Grafikkarte benötigt. Stellen Sie sicher, dass Ihre DISPLAY-Variable auf die Anzeigenummer eingestellt ist, die beim Starten von vncserver gedruckt wird. Als nächstes starten Sie Ihre App auf der erstellten Anzeige (im Hintergrund) und verwenden Sie xwd mit Datenformatierern oder einen Gimp-Befehl, um das Bildschirmbild nach jpeg zu erfassen.

Überprüfen Sie übrigens die ähnlichen Antworten für Kommandozeilenprogramm zum Erstellen von Webseiten-Screenshots (unter Linux).


Am beliebtesten