Etnablog.altervista.org :)

Visitatore: 379554
Welcome ospite
Menu di accessibilità:
Dimensione carattere:

Home > Linux > Ruotare in automatico le foto scaricate dalla fotocamera digitale
Contenuto della pagina:
29 Giugno 2007

Ruotare in automatico le foto scaricate dalla fotocamera digitale

Il comando jhead e le proprietà exif 

Scaricando le foto dalla mia fotocamera digitale, spesso mi era necessario perdere un pò di tempo a dovere raddrizzarle una ad una..

Su Windows le foto, al momento del download dalla mia fotocamera Canon, queste venivano direttamente ruotate, in automatico, dal software fornito in dotazione con la fotocamera, che ne leggeva le proprietà exif di orientamento.

E su Linux?

Semplice! Dopo avere scaricato tutte le foto, da shell portatevi nella cartella ove si trovano le foto e scrivete il comando:
 

jhead -autorot *

 
Il comando jhead, va scaricato da Synaptic.

* * * * * *

Complichiamoci la vita adesso:

Se volessimo fare in modo di ruotare tutte le foto in una cartella, comprese le foto contenute in eventuali sottocartelle, potremmo servirci del potentissimo comando "find". Ve lo presento in tre salse:

Prima forma:

 

jhead -autorot $(find . -type f -iname '*.jpg')

 
In sostanza, prima esegue il comando find su riga di comando e mette il suo output in pasto al comando jhead. Questo può dare qualche problema se la riga di comando è molto lunga.

Seconda forma:
 

find . -type f -iname '*.jpg' -exec jhead -autorot {} ;

 
In questa forma, viene eseguito UN comando jhead per OGNI file. Questo significa che se avete 100 file, verrà aperto 100 volte il comando jhead.
-type f -iname '*.jpg' letteralmente vuol dire "ogni file (non directory nè simlink o altro), che finisce per .jpg o .JPG o .JpG o .jPG (-iname, la "i" serve a renderlo case insensitive, cioè insensibile a minuscole-maiuscole).

Terza soluzione:
 

find . -type f -iname '*.jpg' | xargs -l 100 jhead -autorot

 
La lista dei file trovati da find, per quanto lunga sia, viene letta in blocchi di 100 files, e fa partire UN jhead per 100 files alla volta.

Quarta soluzione:
Ed ecco, infine, la soluzione che attualmente ritengo migliore ed attualmente è quella che uso:

 

find . -type f -iname '*.jpg' -print0 | xargs -0 jhead -autorot

 

Cosa vuol dire?
-print0: i singoli file restituiti da find verranno passati ad xargs in modo che vengano correttamente interpretati nonostante vi siano spazi vuoti o apici in mezzo.

Print0 separa i singoli file da un carattere speciale detto "NULL", in modo che xargs non faccia confusione tra spazi bianchi nei nomi dei file e la separazione dei file stessi.

Se find trova troppi file si corre il rischio che la stringa sia troppo lunga ed ecceda il limite di caratteri ammesso nella riga di comando.
Per questo motivo usiamo xargs che se la sbrigherà lui a fare in modo che questo non succeda. Inoltre, tramite il parametro -0, diciamo ad xargs che riconosca i singoli file perchè separati da un carattere "NULL". Per questo prima abbiamo usato -print0!




ps: thanks a lot to ndim for helping me writing this post wink.gif

Descrizioni usate nelle foto: 
Postato da: Etnablog in Linux alle 14:22

Permalink | Commenti(0)
Inserisci commento

Commenti:

Nessun commento. Vuoi essere il primo?
Non è consentito scrivere testo:
  • non inerente all''argomento
  • privo di indirizzo email
  • pubblicitario
  • con linguaggio offensivo
  • che contiene turpiloquio
  • con contenuto razzista o sessista
  • il cui contenuto costituisce una violazione delle leggi italiane
         (istigazione a delinquere o alla violenza, diffamazione, ecc.)
Comunque il proprietario del blog potrà in qualsiasi momento, a suo insindacabile giudizio, cancellare i messaggi.
In ogni caso il proprietario del blog non potrà essere ritenuto responsabile per eventuali messaggi lesivi di diritti di terzi.
Autore:
Email:
Security code:
Immagine security code

(max 8000 caratteri):
Grassetto Corsivo Sottolineato
Allinea a sinistra Centra Allinea a destra Giustificato
Link a immagine Link a email Link a immagine Link a email
RiduciEspandi
Aggiungi foto dalla tua galleria
Help
Ti piacerebbe essere avvisato via email se qualcuno ti risponde? Devi semplicemente Registrarti!
  
 
*3 users online
Caricamento pagina: 0.09 s