Page 1 sur 1

[screenshot] fenêtre

Publié : mer. 22 févr. 2017, 11:01
par Luzwitz
Salut,
Pour mon script j'ai besoin de faire une capture d'écran d'une fenêtre sur mon bureau, qui s'appelle par exemple ma_fenetre. Mais je ne veux pas faire un screenshot de tout l'écran, juste de ma_fenetre. La fenetre peut se situer n'importe où sur l'écran. Elle n'a pas de position fixe (elle est en "mode float" sur mon bureau)

Savais vous comment je peux faire ?

Merci

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 11:16
par benjarobin
Bonjour, tout dépend de ton environnement de bureau, gestionnaire de fenêtre... Avec KDE il y a un utilitaire qui fait très bien le boulot lancé automatiquement lors de l'appui sur "Impr écran"

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 11:20
par Luzwitz
Non, mon gestionnaire de bureau est très léger : dwm. Il n'y a aucun utilitaire fourni avec.
benjarobin a écrit :Avec KDE il y a un utilitaire qui fait très bien le boulot lancé automatiquement lors de l'appui sur "Impr écran"
Mais je ne veux pas faire un screenshot de tout l'écran, mais juste d'une fenêtre en particulier.

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 11:27
par benjarobin
Euh, sous KDE lorsque tu appui sur "Impr écran", cela fait en effet un screenshot de tout l'écran, mais cela t'ouvre aussi une fenêtre avec l'aperçu de ce qui est capturé, et depuis cette fenêtre tu peux sélectionner si tu veux une zone ou tout simplement cliquer sur une fenêtre que tu veux capturer de nouveau.
Bref, les outils de capture d'écran ce n'est pas ce qui manque : https://wiki.archlinux.org/index.php/Ta ... screenshot

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 11:31
par Luzwitz
benjarobin a écrit :et depuis cette fenêtre tu peux sélectionner si tu veux une zone ou tout simplement cliquer sur une fenêtre que tu veux capturer de nouveau.
Oui je sais. Sauf que je voudrais une commande qui me capture directement la fenêtre.
Par exemple si j'ai une fenêtre qui s'appelle ma_fenetre, je voudrais une commande qui se lance comme ça :

Code : Tout sélectionner

executable ma_fenetre /home/users/mon_screenshoot.jpg
et que ça l'enregistre dans /home/users/mon_screenshoot.jpg.
Comme ça, avec mon script je récupère l'image jpg et j'en fais ce que je veux.

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 11:47
par benjarobin
En gros tu veux un programme qui en fonction du windows Id te fasse un screenshot de cette fenêtre, il y a au moins maim qui permet de le faire. Par contre il te faut un script pour récupérer le windows id en fonction du "nom" de la fenêtre. En gros en bricolant un peu je pense que ce que tu veux est tout à fait possible

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 11:52
par Luzwitz
Oui, c'est exactement c que je veux.
Je vais regarder du côté de maim.
Merci

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 12:11
par Luzwitz
Bon, j'ai trouvé une solution, mais je ne sais pas si c'est très propre. Peux-tu me dire ce que tu en penses stp ?

Je recupère le résultat de la commande xlsclients -l.
Donc ce résultat, je recherche la chaine "ma_fenetre" correspondant au nom de ma fenêtre à screen.
Je remonte deux lignes plus haut, et j'extrait la chaine commencant juste après le "0x" jusqu'au "\n" de fin de ligne.
Ensuite, je converti cette chaine en entier (base 10).
Puis je lance la commande maim -i , suivie du nombre que j'ai convertit plus haut

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 12:54
par benjarobin
Ce sera peut être plus propre et plus simple via : wmctrl -l
Ou encore mieux via xdotool search ...
Mais en gros oui c'était ceci l'idée...

Re: [screenshot] fenêtre (resolu)

Publié : mer. 22 févr. 2017, 13:11
par Luzwitz
Ok, merci pour ton aide !

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 14:22
par Luzwitz
Juste une dernière question, est-ce que le nombre (id) renvoyé par :

Code : Tout sélectionner

xdotool search --name ma_fenetre
a TOUJOURS 8 chiffres ?

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 14:58
par benjarobin
Non par forcément, c'est un nombre en base 10, l'identifiant de la fenêtre... Pourquoi ?

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 15:02
par Luzwitz
Ok.
Non, juste pour savoir si je faisais un tableau de 8 octet ou si je laissais un peu plus de place

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 16:09
par benjarobin
Je ne suis pas sûr de te suivre, un tableau ? mais pourquoi faire ?
Je verrais bien un script qui fait ceci (absolument non testé, écrit ceci vite fait) :

Code : Tout sélectionner

for winid in $(xdotool search --name ma_fenetre) ; do
    maim -i $winid 
done

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 17:18
par Luzwitz
C'est parce que mon script est fait en C

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 17:23
par benjarobin
Tu aimes te faire du mal (et je parle en connaissance de cause, je travail dans les logiciels embarqués), dans ce cas quel est l’intérêt d'utiliser xdotool et maim pourquoi ne pas utiliser les API des librairies associés ?
Je ne dois surement pas tout suivre, mais en bash c'est fait en 2-3 lignes, il y a sûrement quelque chose qui m’échappe... Et ne me dis pas que c'est pour des questions de performance !

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 17:27
par Luzwitz
Je le fais en C, parce qu'après je fais des manipulations sur les pixels de l'image. Et en bash, de un je ne sais pas faire, et de deux ca prendrais beaucoup de temps.
Les api des librairies associés ? Genre libjpeg par exemple ? Je l'utilise pour ensuite lire mon image et faire des traitements dessus. Mais elle ne permet pas de faire un screen d'une fenêtre...

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 17:31
par benjarobin
maim utlise https://docs.enlightenment.org/api/imlib2/html/ après je te laisse regarder aussi la doc de Xorg pour trouver la fenêtre qui t'intéresse.
Mais je conçoit que c'est peut être un peu lourd à développer et que c'est plus simple de lancer un exécutable...
Si ton code est compatible GPL alors tu peux même faire des copier-coller de code de https://github.com/naelstrof/maim/blob/ ... im.cpp#L54

Re: [screenshot] fenêtre

Publié : mer. 22 févr. 2017, 17:50
par Luzwitz
Dac, je te remercie pour tes liens :D