Screenshot di sistemi Unix e GNU/Linux via command line

Postato da ROb | nella categoria Linux, Utilità | venerdì, 22 aprile 2011

2

Tutti noi conoscono almeno 3 o 4 modi differenti per catturare screenshot di finestre o schermo intero sia su sistemi Windows che in sistemi Linux o Unix.

Oggi voglio proporvi due piccoli script che ho scritto ispirandomi a un interessante articolo su IBM Developer Works.

Entrambi gli script sfruttano i comandi messi a disposizione dai sistemi X11 e tipicamente già installati nelle nostre distribuzioni. Tali comandi sono: xwd e xwininfo .

Per renderli un pò più comodi ho utilizzato anche il comando convert, della suite di ImageMagick, e notify-send per inviare delle notifiche all’utente al termine delle operazioni di salvataggio.

Il primo script, di nome capture_full.sh, può ricevere in ingresso 1 parametro che determina il numero di secondi di attesa prima di catturare il nostro desktop in un file nel nostro Desktop. Se tale parametro non viene passato il valore di attesa di default è 3 secondi.

#!/bin/bash

if [ "$1" != "" ]
   then
     seconds=$1;
   else
     seconds=3;
fi

now=`date "+%Y_%m_%d-%H_%M_%S"`
filepath="${HOME}/screen_full_${now}.png"

sleep ${seconds} ; xwd -root | convert - ${filepath}

notify-send -t 3000 -u low -i gtk-dialog-info "Screenshot" "file saved in ${filepath}";

Il secondo script, di nome capture_window.sh, ci permette invece di catturare una singola finestra (anche se non ci permette di interagire con il mouse nella finestra, per far apparire ad esempio un menu contestuale). Il funzionamento di questo script è il seguente: dopo che viene lanciato attende alcuni secondi (modificabili con il primo parametro opzionale) per permetterci di scegliere una finestra del desktop, quindi salva l’id della finestra e lo usa per memorizzare l’immagine della finestra nel desktop.

#!/bin/bash

if [ "$1" != "" ]
 then
 seconds=$1;
 else
 seconds=3;
fi

sleep ${seconds};
wid=`xwininfo | grep "Window id" | awk '{print $4}'`;

now=`date "+%Y_%m_%d-%H_%M_%S"`
filepath="${HOME}/Desktop/screen_window_${now}.png";

xwd -id ${wid} | convert - ${filepath}

notify-send -t 3000 -u low -i gtk-dialog-info "Screenshot" "file saved in ${filepath}";

Provateli, modificando anche la variabile $filepath se lo ritenete opportuno, e fatemi sapere.

Ecco L’articolo originale di William von Hagen in IBM.

100 immagini in 1 pdf

Postato da ROb | nella categoria Linux | martedì, 21 ottobre 2008

0

Logo ImageMagick

Oggi ho imparato questo bellissimo comando, utilizzabile sfruttando l’utility da riga di comando di ImageMagick :

convert *.jpg one_big_file.pdf

In questo modo se abbiamo nella cartella 100 immagini di tipo jpg possiamo generare un unico file pdf, chiamato one_big_file.pdf che contiene tante pagine quanti sono i file di immagini. Comodo no?

convert ha una miriade di opzioni, quindi il suo man e’ tutto da esplorare ma potete divertirvi a ridimensionare  un’immagine della meta utilizzando questo comando:

convert -resize 50% file.jpg file_resized.jpg

oppure ad abbassarne il contrasto con il comando:

convert -contrast  file.jpg file_resized.jpg