Pagina 1 di 1

Ruotare immagini

Inviato: mer giu 26, 2013 1:05
da sunreal
Ciao, mi chiedevo come fosse possibile in ambiente linux, ruotare automaticamente tutte le foto di una directory che ne avessero disogno. Mi spiego ho un modulo sul mio sito che crea delle fotogallery, questo purtroppo non riconosce e ruota automaticamente le foto ma me le mostra di traverso. Sotto win ho un programmino (non ricordo il nome) che analizza tutte le foto di una directory e ruota "definitivamente" tutte quello che lo necessitano (non sbaglia un colpo). Ho fatto qualche prova ma al massimo sono riuscito a ruotarle tutte, quindi dovrei prima cercare tutte le foto "storte" metterle in una directory e poi ruotarle, parlo di centinaia di foto...... Cosa c'è che potrebbe fare al mio caso? Grazie

Re: Ruotare immagini

Inviato: mer giu 26, 2013 1:18
da Blallo

Re: Ruotare immagini

Inviato: mer giu 26, 2013 11:33
da puzuma
sunreal ha scritto:Ciao, mi chiedevo come fosse possibile in ambiente linux, ruotare automaticamente tutte le foto di una directory che ne avessero bisogno.


In ambiente KDE sia Gwenview (il viewer di default) che digikam ruotano automaticamente le immagini. Mi par di ricordare che Gwenview si limita a mostrarle correttamente a schermo mentre digikam ha l'opzione per scrivere su disco la modifica. Ovviamente il dato sull'orientamento dell'immagine deve essere presente nell'header EXIF dell'immagine, ma penso che non esista macchina digitale che non lo faccia.

Re: Ruotare immagini

Inviato: mer giu 26, 2013 11:56
da sunreal
Jpegtran mi sa che ruota tutte quelle che sono nella directory..... no buono. Provero con digikam

Re: Ruotare immagini

Inviato: mer giu 26, 2013 12:05
da puzuma
sunreal ha scritto:Jpegtran mi sa che ruota tutte quelle che sono nella directory..... no buono. Provero con digikam



incuriosito se esistesse qualcosa da linea di comando ho trovato questo:

http://www.sentex.net/~mwandel/jhead/

che ha la comoda opzione autorot, internamente poi utilizza jpegtran per fare la modifica vera e propria.

Poi a quanto pare si può fare con il solito ImageMagick solo che bisogna tirare fuori la giusta serie di opzioni.

Re: Ruotare immagini

Inviato: mer giu 26, 2013 14:03
da sunreal
Ciao, con digikam ho fatto (puramente a caso) questa serie di passaggi
tutte queste opzioni sono nel menu immagine
Prima ho cliccato su --->Auto rotazione/ribaltamento usando le informazioni exif
ho aspettato che finisse poi in -->regola l'etichetta di orientamento exif ho impostato su---> normale
in fine ho cliccato -->scrivi i dati aggiuntivi nelle immagini selezionate
dopodichè ho caricato le immagini sul sito e ta-taaan!!! funziona!
vi chiedevo se qualche passaggio può essere evitato o modificato. Grazie.

Re: Ruotare immagini

Inviato: gio giu 27, 2013 20:53
da 414N
Puoi anche usare imagemagick (nello specifico, il programma convert della suite):

Codice: Seleziona tutto

convert ORIGINAL_IMAGE -auto-orient OUTPUT_IMAGE

dove ORIGINAL_IMAGE e OUTPUT_IMAGE vanno opportunamente sostituiti con, rispettivamente, il nome del file dell'immagine originale e il nome del file dell'immagine di output.
Con un semplice ciclo puoi iterare su tutte le immagini che vuoi poi.

Re: Ruotare immagini

Inviato: mar ago 27, 2013 22:03
da boh
Avendo lo stesso problema, sfrutto il topic :D

La mia macchina fotografica (Casio Exilim EX-H15) a quanto dicono le specifiche dovrebbe essere dotata di accelerometro.
Da ciò mi aspetto che le foto in orizzontale siano differenziate da quelle in verticale attraverso il tag Exif Orientation. In tutte le foto il tag in questione è settato come "top left".
In questo modo, jhead non ruota nulla in automatico. Mi sfugge qualcosa? O la mia fotocamera è proprio "fallata" da questo punto di vista?

Non arrivando da nessuna parte, ho provato ad utilizzare jpegtran isolando le foto effettivamente verticali (by hand per intenderci).
Con un mini script pensavo di risolvere e invece ottengo un bellissimo effetto matrix (apparentemente infinito) e nessuna modifica alle immagini.
Lo script è il seguente:

Codice: Seleziona tutto

#!/bin/sh

for file in *.JPG
do
 jpegtran -rotate 270 "$file"
done


Jpegtran non funziona neanche se lanciato su una foto singola (solito effetto matrix); consigli?

Re: Ruotare immagini

Inviato: mer ago 28, 2013 9:11
da hashbang
jpegtran man page ha scritto:Examples

This example converts a baseline JPEG file to progressive form:

jpegtran -progressive
foo.jpg > fooprog.jpg

This example rotates an image 90 degrees clockwise, discarding any unrotatable edge pixels:

jpegtran -rot 90 -trim
foo.jpg > foo90.jpg


In sostanza, al tuo script manca la reindirizzazione.

Codice: Seleziona tutto

#!/bin/sh

for file in `/bin/ls *.JPG`
do
 jpegtran -rotate 270 $file > $(echo $file | cut -f1 -d'.')_ruotato.jpg
done

Re: Ruotare immagini

Inviato: mer ago 28, 2013 21:06
da boh
Grazie, così jpegtran funziona :D