web-dev-qa-db-fra.com

Comment prendre une capture d'écran de manière non interactive d'une zone prédéfinie et l'enregistrer automatiquement en appuyant sur une touche?

J'avais l'habitude d'utiliser "Gadwin print screen" sur Windows où je pouvais simplement appuyer sur un raccourci et une zone d'écran prédéfinie serait enregistrée dans un dossier (sans poser de questions), ce qui est très utile lors de longs cours en ligne.

Je suis passé à Ubuntu et j'ai besoin d'une alternative. J'ai installé Shutter et réussi à créer un raccourci qui peut déclencher l'outil de "sélection" et enregistrer automatiquement l'image, mais le problème est que je dois repositionner la zone de sélection prédéfinie (qui est positionnée en bas à droite de l'écran par défaut) et l'obturateur ne se souvient pas de la position précédente, ce qui prend du temps dans mon scénario d'utilisation où des centaines de captures d'écran sont prises.

1
dipu

Lier un script qui implémente scrot et imagemagick à un raccourci clavier

1) Installez les applications nécessaires

Depuis la ligne de commande, exécutez:

Sudo apt install scrot imagemagick

2) Créez le script

Ouvrez l'éditeur de texte de votre choix et créez un nouveau fichier en clair avec le contenu suivant. Assurez-vous de modifier les variables en haut pour spécifier où vous souhaitez enregistrer les images et quelle partie de l'écran vous souhaitez recadrer. Voir cette astuce pour obtenir les coordonnées de la souris qui peuvent être utilisées pour trouver left et top et pour calculer width et height.

#!/bin/bash

# Change these values to match your preferences
imageQuality=100    # scrot default is 75
screenshotDir="/tmp"
imageName="$(date +%Y-%m-%d.%H:%M:%S.%N).jpg"   # save image names as timestamp
left=10     # begin crop this number of pixels from the left of the image
top=10      # begin crop this number of pixels from the top of the image 
width=100   # crop this many pixels wide
height=100  # crop this many pixels tall

#Do not make any more changes from here down unless you know what you're doing
imagePath="$screenshotDir/$imageName"

scrot -q $imageQuality "$imagePath"
convert "$imagePath" -crop ${width}x${height}+${left}+${top} "$imagePath"

Enregistrez ce script où vous le souhaitez et rendez-le exécutable. En supposant que vous ayez nommé votre script screenshot.sh, vous le feriez sur la ligne de commande comme ceci:

chmod +x /path/to/your/script/screenshot.sh

3) Liez ce script à un raccourci clavier

Suivez les instructions trouvées ici pour créer un raccourci clavier personnalisé. Lorsque vous arrivez au point où vous êtes censé entrer la commande, mettez le chemin complet vers votre screenshot.sh fichier (y compris le nom du fichier).

2
b_laoshi