Ridimensionamento e rotazione dell'immagine senza dipendere dai dati EXIF?


10

Esiste un semplice editor di immagini per Linux che ha consentito il ridimensionamento e la rotazione dell'immagine senza utilizzare i dati EXIF ​​per il ridimensionamento e la rotazione?

Finora ho provato EOG , Shotwell e GIMP e quando ruoto le immagini, le memorizzano nell'intestazione EXIF. Questo non lo voglio.

Anche se GIMP potrebbe farlo, richiede troppo tempo in quanto richiede tonnellate di clic del mouse quando si tratta di file JPEG.


2
Quindi, fondamentalmente, se si ruota un'immagine di 90 gradi a sinistra, si desidera che l'immagine stessa venga ruotata nei dati di 90 gradi a sinistra? Non tramite le informazioni memorizzate nei dati EXIF, giusto?
Jake:

Esattamente. Ne ho bisogno perché i file README.md di Github non comprendono EXIF.
Jasmine Lognnes,

Bingo! Ho pubblicato una risposta più completa, ma credo che il problema che stai riscontrando sia la differenza fondamentale tra il salvataggio di un'immagine in un moderno programma di modifica delle immagini rispetto all'esportazione di un'immagine. La mia risposta è più dettagliata, ma credo che se dovessi esportare un JPEG tramite GIMP otterrai i risultati esatti che desideri senza dover gestire i dati EXIF ​​preferiti per trasformazioni come ridimensionamento e rotazione.
Jake:

L'uso dell'esportazione di GIMP su un jpeg spogliato exif ne ha aggiunto uno nuovo.
Jasmine Lognnes,

Sì, potrebbe aver aggiunto nuovi dati EXIF, ma i dati dell'immagine reale sono stati modificati in modo da corrispondere all'orientamento quando è stata posta la domanda?
Jake Gould

Risposte:


15

Esiste un semplice editor di immagini per Linux che ha consentito il ridimensionamento e la rotazione dell'immagine senza utilizzare i dati EXIF ​​per il ridimensionamento e la rotazione?

Salvataggio 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 di un'immagine e salvare un'immagine.

In passato, il 100% di tutti gli editor di immagini nel mondo trasformava / modifica i pixel in caso di trasformazioni di orientamento semplici. È solo di recente che i programmi di modifica delle immagini rimandano all'utilizzo dei dati EXIF ​​per memorizzare alcuni dati di trasformazione fisica.

Perché? Facile. Poiché il formato JPEG è un formato con perdita di dati, anche quando la qualità è impostata al 100%, il salvataggio di un JPEG per cose semplici come la rotazione delle immagini degraderà lentamente i dati. Al contrario, memorizzando tali dati come informazioni EXIF, l'immagine JPEG grezza non viene toccata, ma i dati di trasformazione vengono trasmessi in modo da poter vedere l'immagine ruotata senza degradare l'immagine nel processo.

È qui che entra in gioco il concetto di esportazione. Molti programmi di modifica delle immagini come GIMP consentono di esportare un'immagine che significherebbe sostanzialmente modificare i dati dell'immagine stessa e ottimizzarli per l'uso in software di modifica non di immagini.

Pertanto, mentre potrebbero esserci altri strumenti software che modificano esplicitamente i dati delle immagini per attività come la rotazione, è possibile che sia 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 in lotti

Detto questo, menzionate come GIMP potrebbe richiedere troppo tempo per le vostre esigenze. Non è chiaro quale sia il flusso di lavoro esatto, ma se si dispone di una cartella / directory piena di file JPEG potrebbe essere necessario elaborare, consiglierei di esaminare gli strumenti menzionati in questa altra risposta :

  • exiftran : uno strumento utilizzato per trasformare le immagini JPEG della fotocamera digitale che può eseguire le seguenti operazioni:

Può eseguire rotazioni senza perdita di dati 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 usandojheadcon l'-autorotopzione che è descritta come:

Usando il tag 'Orientamento' dell'intestazione Exif, ruota 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 la miniatura di Exif viene ruotata. Altri campi dell'intestazione Exif, comprese le dimensioni, non vengono toccati, ma l'altezza / larghezza del JPEG vengono regolate.

Questa funzione è particolarmente utile con le più recenti fotocamere digitali, che impostano automaticamente il campo di orientamento nell'intestazione Exif utilizzando un sensore di orientamento incorporato nella fotocamera.

Ecco un altro strumento menzionato in questo altro thread :

  • NConvert : 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 lo usinconvertcon l'-jpegtransopzione è esattamente quello che stai cercando. Ma mi chiedo se questo utilizza solo la stessa libreria / funzionalità dibase raccomandatajpegtranda questa altra risposta a questa domanda?

Infine, forse usando lo strumento ImageMagick convert con l' -auto-orientopzione funzionerebbe per te?

-auto-Orient

regola un'immagine in modo che il suo orientamento sia adatto alla visualizzazione (ovvero orientamento in alto a sinistra).

Questo operatore legge e ripristina l'impostazione del profilo dell'immagine EXIF ​​'Orientamento' e quindi esegue la rotazione di 90 gradi sull'immagine per orientare l'immagine, per una corretta visualizzazione.

Questa impostazione del profilo EXIF ​​viene in genere 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 che sono state "corrette" con l'orientamento senza reimpostare questa impostazione, possono essere "corrette" nuovamente con un risultato errato. Se il profilo EXIF ​​è stato precedentemente rimosso, l'operatore -auto-orient non farà nulla.


Sarebbe perfetto se uno strumento da riga di comando potesse eseguire l'effettiva rotazione dei pixel in base a EXIF ​​e successivamente cancellare le informazioni EXIF. È possibile?
Jasmine Lognnes,

1
@JasmineLognnes Non ho effettivamente utilizzato uno di questi strumenti di me stesso, ma questa domanda è un buon riferimento per gli strumenti dovrei indagare, ma sembra a me che exiftrane jpegtranpotrebbe essere quello che state cercando. Vorrei sperimentare le opzioni di entrambi gli strumenti e vedere cosa succede. Il meglio che posso fare. In bocca al lupo!
Jake Gould

1
Potresti trovare divertente che il sistema abbia selezionato questa risposta come test di audit nella coda di revisione di LQ Post. Ho votato per non cancellarlo, a proposito, e apparentemente, quella era la risposta giusta. :-)
fixer1234

@ fixer1234 Sì, l'ho visto anch'io quando ho controllato post di bassa qualità in precedenza. Divertente! Potrebbe essere stato innescato dalla quantità di vari collegamenti a diversi pacchetti che mi viene consigliato. Ma hey! Sono felice che esista un meccanismo automatizzato di polizia che ha almeno un componente di filtraggio umano.
Jake Gould,

2

Di solito uso jpegtranper ruotare le fotografie:

jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg

90 ruota a destra, usa 270 per la sinistra (e 180 per la rotazione).


2

Durante l'esportazione in GIMP è possibile fare clic su Avanzate nel popup prima di salvare dove è possibile disabilitare EXIF ​​e XMP.

L'algoritmo generale per copiarlo

  • per ogni file
  • salva valore da exiftool * | grep Orientation
  • rimuovere exif con exiftran -ai *
  • utilizzare convert -rotatecon valore dal passaggio 2

Questo e 'esattamente quello che stavo cercando. Un modo per rilevare se l'immagine viene ruotata e quindi un modo per ruotarla in base a quello. Grazie!
xarlymg89,

0

È possibile utilizzare Exiftool per rimuovere i dati EXIF ​​dalle immagini JPEG.


Sì, è ottimo per questo, ma quando modifico le immagini in seguito, vengono aggiunte nuove intestazioni EXIF.
Jasmine Lognnes,

EXIFTool può rimuovere i dati, ma non altera, ruota o scala e l'immagine. Eliminerà semplicemente quei dati e il JPEG verrà quindi visualizzato in qualsiasi formato grezzo in cui esisteva originariamente. Questo è utile in alcuni casi, ma non in un caso come questo.
Jake:
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.