J'ai une image à l'écran et je veux mesurer sa largeur. Bien sûr, je peux utiliser une règle , mais c'est lunatique et lent. Y a-t-il quelque chose où je peux cliquer sur une touche de raccourci, faire glisser une zone et cela me dira la hauteur et la largeur de cette zone?
Quelque chose de similaire à Page Ruler pour Google Chrome.
Actuellement, j'utilise Shift+ PrtScnet je fais glisser la zone, j'enregistre l'image, puis je vais dans Propriétés pour connaître sa hauteur et sa largeur.
Comment ça marche
Le script ci-dessous mesure la taille d'une zone, entre deux emplacements du pointeur de la souris.
Cela fonctionne comme suit:
Placez le pointeur de la souris en première position (sans cliquer)
Appuyez sur la combinaison de touches de votre choix (voir ci-dessous)
Placez la souris dans la deuxième position (encore une fois sans cliquer)
Appuyez à nouveau sur votre combinaison de touches. Une notification vous indiquera la taille exacte (px) de la zone.
Les options
Vous pouvez choisir (en décommentant l'une des lignes) la manière dont vous souhaitez être averti; soit par une notification:
Ou une fenêtre d'information Zenity:
(Les exemples proviennent de différents domaines)
Comment utiliser
Le script utilise
xdotool
:Copiez le script ci-dessous dans un fichier vide, décommentez l'une des lignes:
(à notifier par l'
notify-send
option)ou:
pour l'
Zenity
option.Enregistrez le script dans
~/bin
(vous devrez probablement créer le répertoire) sousmeasure_area
(sans extension) et rendez-le exécutable .Ajoutez une combinaison de touches de votre choix pour exécuter le script: Choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande:
Remarques
Le script
Explication
Lorsque le script est appelé la première fois, il obtient la position actuelle de la souris avec la
xdotool
commande:Il enregistre ensuite la position dans un fichier (invisible)
.measure_area.txt
, en attendant le deuxième appel.Au deuxième appel, il lit le fichier, le supprime et compare les
x/y
coordonnées enregistrées aux dernières, et calcule la taille de la zone entre elles.modifier
Mise à jour du script avec un certain nombre d'améliorations:
subprocess.Popen()
/ optimiséessubprocess.check_output()
(merci à @muru, @Trengot)xdotool
installé)la source
Popen(['/bin/bash',...
au lieu dePopen(['zenity', '--info', ...
?command = ['zenity', '--info', '--title', 'Area Size', '--text', str(w) + ' x ' + str(h)]; subprocess.Popen(command)
nécessite beaucoup moins de déconner'
et"
, je pense.xdotools
? Quelque chose comme çacheck_output(['xdotools', 'getmouseposition'])
?Utilisation de slop
Un autre moyen simple de déterminer la zone d'une sélection consiste à utiliser
slop
(Select Operation), un utilitaire de ligne de commande "qui interroge une sélection de l'utilisateur et imprime la région sur stdout".slop
est un outil relativement nouveau et n'a pas encore été empaqueté pour Debian / Ubuntu. En l'état, vous devrez le compiler à partir de la source:L'installation est la partie la plus difficile.
slop
lui-même est en fait très facile à travailler. Par exemple, la ligne unique suivante vous invitera à sélectionner une zone d'écran et affichera le résultat sous forme de notification et l'écrira dans le presse-papiers:Capture d'écran:
Une ventilation rapide des commandes utilisées:
slop -t 0 -b 1
- inviter l'utilisateur à sélectionner une zone d'écran; ne sélectionnez pas les fenêtres complètes (-t 0
), définissez la bordure de sélection sur 1 px (-b 1
)eval $(...)
- lire la sortie deslop
dans les variablesnotify-send ...
- envoyer une notification GUI avec des informations sur la zone sélectionnéeecho ${W}x${H} | xsel -bi
- copier les dimensions dans le presse-papiers (nécessitexsel
→sudo apt-get install xsel
)la source