Quante volte vi è capitato di avere una directory piena di foto e avreste voluto ridimensionarle, convertirle ad altro formato o rinominarle tutte assieme?
Non vi è mai capitato?
Beh, a me sì.
E come sempre il mondo Linux mi viene in soccorso con dei software eccezzionali.
In questo caso parliamo di ImageMagick. Il programma è composto sia da un programma a finestre (mai usato) sia da comandi utilizzabili da terminale (spettacolari).
Come avrete intuito a me interessa particolarmente le righe di comando che permettono di fare delle operazioni sulle immagini in tempi incredibilmente ridotti.
Potete trovare tutte le caratteristiche e le funzionalità di ImageMagick, oltre a notizie di vario tipo e centinaia di esempi d'uso nel sito ufficiale.
L'installazione è banale usando "Ubuntu Software Center", è ugualmente facile anche da riga di comando:
sudo apt-get update
sudo apt-get install imagemagick
Dovete ridurre di un quarto la dimensione di tutte le immagini contenute in una cartella.
Non vorrete mica aprirle una per una magari usando l'ottimo Gimp (ottimo ma non un fulmine di guerra) ed effettuare una noiosa, ripetitiva operazione meccanica?
Assolutamente no!
Sfruttiamo ImageMagick!
Procedere come segue:
- Aprire un terminale (terminal/shell).
- A questo punto portarsi nella directory contenente la directory immagini (i.e. Images) mediante qualche "cd".
- Fate un backup delle immagini (se necessario):
cp -a Images Images_Bck
- Accedere alla cartella:
cd Images
- Ridimensionamento velocissimo di tutte le immagini (supponiamo abbiano estensione "png"):
mogrify -resize 25% *.png
Con una riga di comando e qualche secondo d'attesa il gioco è fatto!
Quando scattate una foto con i moderni dispositivi digitali, vengono salvate assieme all'immagine una miriade di informazioni. L'acronimo inglese che denota questo formato di file immagini è Exif (Exchangeable image file format).
ImageMagick permette di leggere queste informazioni agevolmente utilizzando il comando identify di cui potete trovare la descrizione detagliata con tutte la sua miriade di opzioni qui.
Provate il comando:
identify -verbose NomeFile.ext
la quantità di dati che ritorna è veramente esagerata, troppe informazioni è come non averne. Per estrapolare quanto ci serve usiamo l'opzione format del comando identify che ritorna le stringhe che ci interessano formattate.
Ad esempio, se ci serve la data/ora di scatto della foto salvata nei dati Exif possiamo provare a scrivere:
identify -format "%[exif:*Time*]"
questo comando ci ritornerà tutte le righe dei dati Exif che contengono la parola Time, per una mia foto ad esempio questo è quanto:
era77@era77-PC:~/Immagini/Test$ identify -format "%[exif:*Time*]" DSC_0010.JPG
exif:DateTime=2015:12:07 15:02:18
exif:DateTimeDigitized=2015:12:07 15:02:18
exif:DateTimeOriginal=2015:12:07 15:02:18
exif:ExposureTime=10/8000
exif:SubSecTime=30
exif:SubSecTimeDigitized=30
exif:SubSecTimeOriginal=30
per avere la sola riga contenente data/ora di scatto il comando è il seguente:
era77@era77-PC:~/Immagini/Test$ identify -format "%[exif:DateTime]" DSC_0010.JPG
2015:12:07 15:02:18