Question

Je dois écrire un outil de ligne de commande Red Hat Linux qui ouvre une fenêtre et enregistre son apparence sur le disque au format JPEG.

Généralement, les ordinateurs cibles ne disposent pas de carte graphique, mais nous pouvons installer n’importe quel composant logiciel (X, par exemple).

Question ou deux:

Quels bibliothèques ou 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.

Était-ce utile?

La solution

Il semble que vous deviez utiliser le " framebuffer virtuel " pour le serveur X.org, associé au xwd , NetPBM et utilitaires cjpeg .

Je ne suis pas sûr de la configuration particulière dont vous aurez besoin pour le serveur X, mais vous devrez probablement vous assurer que le pilote que vous utilisez possède le pilote de framebuffer virtuel intégré. Le pilote de framebuffer virtuel est un pilote d’affichage identique à celui que vous utiliseriez pour vous connecter à une carte vidéo NVidia ou ATI, à l’exception de sa "sortie". est un bloc de mémoire contenant les pixels, pas un écran LCD.

xwd est l’un des outils X standard permettant de créer un vidage X Window. xwd peut être indiqué sur la ligne de commande quelle fenêtre vider. Il génère un "xwd" funky flux formaté à la sortie standard.

Les utilitaires NetPBM sont un ensemble d’outils de ligne de commande permettant de convertir un format d’image en un autre. Il en inclut un qui convertit xwdtoppm. PPM est un format très basique, 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 possédez également NetPBM. cjpeg peut prendre un flux d'octets PPM et émettre un flux d'octets JPEG.

Grâce à la magie des scripts Unix et des tubes, vous pouvez relier ces utilitaires pour lancer l'application avec la fenêtre, appeler xwd, xwdtoppm et cjpeg pour importer l'image dans un fichier.

Autres conseils

Vous pouvez essayer d’exécuter vncserver pour créer un affichage X Window virtuel - aucune carte graphique n’est nécessaire. Veillez à définir votre variable DISPLAY sur le numéro d'affichage à imprimer au démarrage de vncserver. Ensuite, démarrez votre application sur l’affichage créé (en arrière-plan) et utilisez xwd avec des formateurs de données ou une commande gimp pour capturer l’image à l’écran en jpeg.

À propos, vérifiez les réponses similaires pour ligne de commande programme de création de captures d'écran de sites Web (sous Linux) .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top