2009-01-15 6 views
2

Je dois écrire un outil de ligne de commande Red Hat Linux qui lance une fenêtre et capture son apparence sur le disque au format JPEG.Linux: fenêtre de lancement, écran de capture

Généralement, les machines cibles ne possèdent pas de cartes graphiques, mais nous pouvons installer n'importe quel composant logiciel (par exemple, X).

ou deux questions:

Qu'est-ce que les bibliothèques ou les outils pourriez-vous suggérer pour cela?

Si je devais utiliser quelque chose comme GTK + pour créer cet outil, l'absence d'une carte vidéo entraverait-elle son exécution?

J'ai vu scrot, mais il ne semble pas prendre en charge la capture d'une fenêtre spécifique sans interaction de l'utilisateur.

+0

Je n'ai aucune idée de ce que vous demandez ici. Si vous n'avez pas de carte graphique, il sera très difficile d'utiliser une console ou de lancer une fenêtre. Je suppose que vous parlez de ne pas avoir une carte graphique de type PCI, auquel cas, cela n'a pas d'importance. – Eldelshell

+0

Le programme que je crée sera appelé par un programme serveur; pas un shell interactif ou quelque chose comme ça. –

Répondre

4

On dirait que vous aurez besoin d'utiliser le pilote "virtual framebuffer" pour le serveur X.org, combiné avec les xwd, NetPBM et cjpeg services publics.

Je ne suis pas sûr de la configuration particulière que vous » Vous aurez besoin du serveur X, mais vous devrez probablement vous assurer que le pilote du framebuffer virtuel est intégré au serveur que vous utilisez Le pilote du framebuffer virtuel est un pilote d'affichage comme celui que vous utiliseriez pour vous connecter à un NVidia ou une carte vidéo ATI, sauf que c'est "sortie" est un morceau de mémoire qui contient les pixels, pas un écran LCD

xwd est l'un des standards X outils, qui peuvent créer un vidage de fenêtre X. On peut indiquer à xwd sur la ligne de commande quelle fenêtre doit être vidée. Il génère un flux formaté "xwd" funky à la sortie standard. Les utilitaires NetPBM sont une collection d'outils de ligne de commande qui convertissent un format d'image en un autre. Il en inclut un qui convertit xwdtoppm. PPM est un format très basique et non compressé qui est le format intermédiaire compris par la plupart des outils NetPBM. Cjpeg fait partie de la collection d'outils JPEG standard, et est probablement installé si vous avez également NetPBM. cjpeg peut prendre un flux d'octets PPM et émettre un flux d'octets JPEG. Grâce à la magie des scripts et des pipes Unix, vous pouvez enchaîner ces utilitaires pour lancer l'application avec la fenêtre, appelez xwd, xwdtoppm et cjpeg pour vider l'image dans un fichier.

0

Vous pouvez essayer d'exécuter vncserver pour créer un affichage de fenêtre X virtuel - aucune carte graphique n'est nécessaire. Veillez à définir votre variable DISPLAY sur le numéro d'affichage qui sera imprimé au démarrage de vncserver. Ensuite, démarrez votre application sur l'écran créé (en arrière-plan) et utilisez xwd avec des formateurs de données ou une commande gimp pour capturer l'image sur jpeg. Par ailleurs, vérifiez les réponses similaires pour Command line program to create website screenshots (on Linux).

Questions connexes