Esiste un semplice editor di immagini per Linux che consenta di ridimensionare e ruotare l'immagine senza utilizzare i dati EXIF per il ridimensionamento e la rotazione?
Risparmio contro esportazione
So che affermi che non vuoi davvero farlo in GIMP, ma nella mia esperienza il problema che stai riscontrando (software che favorisce i dati di orientamento EXIF rispetto alla trasformazione effettiva dei pixel nell'immagine) si riduce alla differenza tra l'esportazione un'immagine e salvataggio un'immagine.
In passato, il 100% di tutti gli editor di immagini del mondo trasformava/modificava effettivamente i pixel quando si trattava di semplici trasformazioni di orientamento. È solo relativamente di recente che i programmi di modifica delle immagini rinviano all'utilizzo dei dati EXIF per memorizzare alcuni dati di trasformazione fisica.
Come mai? Facile. Poiché il formato JPEG è un formato con perdita, anche quando la qualità è impostata al 100%, salvare nuovamente un JPEG per cose semplici come la rotazione dell'immagine degraderà lentamente i dati. Al contrario, memorizzando quei dati come informazioni EXIF, l'immagine JPEG non elaborata viene lasciata intatta ma i dati di trasformazione vengono trasmessi in modo da poter vedere l'immagine ruotata senza degradarla durante il processo.
È qui che entra in gioco il concetto di esportazione. Molti programmi di modifica delle immagini come GIMP consentono di esportare un'immagine, il che significherebbe sostanzialmente modificare i dati dell'immagine stessa e ottimizzarli per l'utilizzo in software non di modifica delle immagini.
Quindi, mentre potrebbero esserci altri strumenti software che modificano esplicitamente i dati dell'immagine per attività come la rotazione là fuori, potrebbe essere eccessivo installarli e utilizzarli. Invece consiglierei semplicemente di sperimentare la funzionalità di esportazione in qualsiasi software di modifica delle immagini che stai utilizzando; che si tratti di GIMP, Photoshop o qualcos'altro.
Elaborazione batch
Detto questo, menzioni come GIMP potrebbe richiedere troppo tempo per le tue esigenze. Non è chiaro quale sia il tuo flusso di lavoro esatto, ma se disponi di una cartella/directory piena di file JPEG che potresti dover elaborare, ti consiglio di esaminare gli strumenti menzionati in quest'altra risposta:
- exiftrano :uno strumento utilizzato per trasformare le immagini JPEG della fotocamera digitale che può eseguire le seguenti operazioni:
Può eseguire rotazioni senza perdite come jpegtran, ma a differenza di jpegtran si preoccupa dei dati EXIF:può ruotare le immagini automaticamente controllando il tag di orientamento exif, aggiorna le informazioni exif se necessario (dimensione dell'immagine, orientamento), ruota anche la miniatura exif. Può elaborare più immagini contemporaneamente.
- JHead :In particolare utilizzando
jhead
con il-autorot
opzione descritta come:
Utilizzando il tag "Orientamento" dell'intestazione Exif, ruotare l'immagine in modo che sia verticale. Il programma 'jpegtran' viene utilizzato per eseguire la rotazione. Questo programma è presente nella maggior parte delle distribuzioni Linux. Per Windows, devi procurartene una copia. Dopo la rotazione, il tag di orientamento dell'intestazione Exif è impostato su '1' (orientamento normale). Anche Exifthumbnail viene ruotato. Gli altri campi dell'intestazione Exif, comprese le dimensioni, non vengono toccati, ma l'altezza/larghezza JPEG viene regolata.
Questa funzione è particolarmente utile con le fotocamere digitali più recenti, che impostano automaticamente il campo di orientamento nell'intestazione Exif utilizzando un sensore di orientamento integrato nella fotocamera.
Ecco un altro strumento menzionato in quest'altro thread:
- NConverti :NConvert è il convertitore di immagini a riga di comando multiformato per Win32, Linux, DOS, OS/2 e altre piattaforme. I dettagli di avvio rapido sembrano essere qui. E sembra che se usi
nconvert
con il-jpegtrans
opzione che è esattamente quello che stai cercando. Ma mi chiedo se questo utilizzi solo la stessa libreria/funzionalità di base dijpegtran
come suggerisce quest'altra risposta a questa domanda?
Infine, magari usando ImageMagick convert
strumento con il -auto-orient
funzionerebbe per te?
-orientamento automatico
regola un'immagine in modo che il suo orientamento sia adatto alla visualizzazione (ad es. orientamento in alto a sinistra).
Questo operatore legge e reimposta l'impostazione "Orientamento" del profilo dell'immagine EXIF, quindi esegue l'appropriata rotazione di 90 gradi sull'immagine per orientarla, per una corretta visualizzazione.
Questa impostazione del profilo EXIF viene solitamente impostata utilizzando un sensore di gravità nella fotocamera digitale, tuttavia le foto scattate direttamente verso il basso o verso l'alto potrebbero non avere un valore appropriato. Anche le immagini il cui orientamento è stato "corretto" senza reimpostare questa impostazione, potrebbero essere "corrette" di nuovo, con un risultato non corretto. Se il profilo EXIF è stato precedentemente rimosso, l'operatore -auto-orient non farà nulla.
Di solito uso jpegtran
per ruotare le fotografie:
jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg
90 ruota a destra, usa 270 per sinistra (e 180 per flip).
Quando esporti in GIMP puoi fare clic su Avanzate nel popup appena prima di salvare dove puoi disabilitare EXIF e XMP.
L'algoritmo generale per scriverlo:
- Per ogni file.
- Salva il valore da
exiftool * | grep Orientation
. - Rimuovi exif con
exiftran -ai *
. - Usa
convert -rotate
con il valore del passaggio 2.