Ruotare immagini

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
sunreal
Master
Master
Messaggi: 1599
Iscritto il: dom 10 apr 2005, 0:00
Slackware: 14.1
Desktop: kde
Località: P.P.P.

Ruotare immagini

Messaggio 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

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Ruotare immagini

Messaggio da Blallo »


Avatar utente
puzuma
Linux 2.x
Linux 2.x
Messaggi: 482
Iscritto il: mar 4 lug 2006, 17:14
Nome Cognome: Stefano Salvador
Slackware: current
Kernel: 2.6.32.2
Desktop: KDE 4.4.0
Località: Udine
Contatta:

Re: Ruotare immagini

Messaggio 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.
The quiet ones are the ones who change the world. The loud ones only take the credit.

sunreal
Master
Master
Messaggi: 1599
Iscritto il: dom 10 apr 2005, 0:00
Slackware: 14.1
Desktop: kde
Località: P.P.P.

Re: Ruotare immagini

Messaggio da sunreal »

Jpegtran mi sa che ruota tutte quelle che sono nella directory..... no buono. Provero con digikam

Avatar utente
puzuma
Linux 2.x
Linux 2.x
Messaggi: 482
Iscritto il: mar 4 lug 2006, 17:14
Nome Cognome: Stefano Salvador
Slackware: current
Kernel: 2.6.32.2
Desktop: KDE 4.4.0
Località: Udine
Contatta:

Re: Ruotare immagini

Messaggio 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.
The quiet ones are the ones who change the world. The loud ones only take the credit.

sunreal
Master
Master
Messaggi: 1599
Iscritto il: dom 10 apr 2005, 0:00
Slackware: 14.1
Desktop: kde
Località: P.P.P.

Re: Ruotare immagini

Messaggio 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.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Ruotare immagini

Messaggio 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.

Avatar utente
boh
Linux 4.x
Linux 4.x
Messaggi: 1027
Iscritto il: ven 16 set 2005, 0:00
Slackware: 14.2 (x64)
Kernel: 4.4.111
Desktop: KDE 4.14.32
Località: Milano
Contatta:

Re: Ruotare immagini

Messaggio 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?
"Be yourself. Everyone else is already taken." ~ Oscar Wilde

hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

Re: Ruotare immagini

Messaggio 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

Avatar utente
boh
Linux 4.x
Linux 4.x
Messaggi: 1027
Iscritto il: ven 16 set 2005, 0:00
Slackware: 14.2 (x64)
Kernel: 4.4.111
Desktop: KDE 4.14.32
Località: Milano
Contatta:

Re: Ruotare immagini

Messaggio da boh »

Grazie, così jpegtran funziona :D
"Be yourself. Everyone else is already taken." ~ Oscar Wilde

Rispondi