ImageMagick - Capture d'écran

Ce document décrit l'utilisation de la commande import de ImageMagick pour réaliser des copies d'écran :

Dernière mise à jour : Debian 9.6 - ImageMagick 6.9.7-4

1 - Préambule

$ whatis import
import - saves any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen.
$ man import
$ import --help

2 - Captures uniques

2.1 - Définition de la zone avec la souris

$ import capture
$ import capture.png        # ou bien import png:capture
$ import png:- |display - &
$ import -pause 4 capture.png

2.2 - Capture d'une fenêtre

$ import -window root capture.png
$ import -window root -screen capture.png
$ import -screen capture.png
$ import -descend capture.png
$ xwininfo

xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.

xwininfo: Window id: 0x3a0013a "ImageMagick [file:/.../index.html] - Composeur"
.....
$ import -window 0x3a0013a   # ou bien
$ import -window "ImageMagick [file:/.../index.html] - Composeur"

2.3 - Capture d'une partie de fenêtre

Capturer un rectangle de 512x256 à partir du point +100+20 par rapport à l'angle supérieur gauche de la fenêtre dans la fenêtre active par exemple

$ import -screen -crop 512x256+100+20 capture.png

2.4 - Capture comprenant un menu déroulant

$ import -pause 5 -window root -screen capture.png
$ display capture.png

3 - Captures multiples

Effectuer une série de 4 captures de la fenêtre active avec un temps de pause de 5 secondes avant que le pointeur ne se transforme en pointeur de sélection

3.1 - Dans un fichier image unique

Certains formats d'image acceptent de multiples images (par exemple postcript, gif, ...)

$ import -snaps 4 -pause 5 capture.ps     # le fichier Postscript comprend 4 pages
$ identify capture.ps
capture.ps[0] PS 1295x787 1295x787+0+0 16-bit sRGB 110KB 0.010u 0:00.000
capture.ps[1] PS 1295x787 1295x787+0+0 16-bit sRGB 110KB 0.000u 0:00.000
capture.ps[2] PS 1295x787 1295x787+0+0 16-bit sRGB 110KB 0.000u 0:00.000
capture.ps[3] PS 1295x787 1295x787+0+0 16-bit sRGB 110KB 0.000u 0:00.000
$ display capture.ps         # Affiche toutes les images
$ display capture.ps[0,2,3] # Affiche les images 0 2 et 3

3.2 - Dans des fichiers image séparés

$ import -snaps 4 -pause 5 capture.png       # 4 fichiers png sont créés
$ ls capture*.png
capture-0.png capture-1.png capture-2.png capture-3.png
$ import -snaps 4 -pause 5 capt%d.png
$ ls capt*.png
capt0.png capt2.png capt3.png cap4.png

4 - Alternatives

Quelques applications de capture d'écran

$ sudo aptitude install scrot
$ scrot -d 5 -u capture.png
$ scrot -d 5 -u capture.png
$ sudo aptitude install flameshot
$ flameshot gui -d 5000