GNU/Linux >> Linux Esercitazione >  >> Linux

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

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 di jpegtran 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:

  1. Per ogni file.
  2. Salva il valore da exiftool * | grep Orientation .
  3. Rimuovi exif con exiftran -ai * .
  4. Usa convert -rotate con il valore del passaggio 2.

Linux
  1. Perché i dati sono importanti e come proteggerli

  2. Come rinominare più foto e video in base ai dati Exif?

  3. Come organizzare/ordinare le immagini per dati immagine Exif?

  4. La sfida e la promessa dei big data

  5. Panoramica di CCPA e GDPR

Gestione dei dati mancanti in Python:cause e soluzioni

Come caricare e scaricare l'immagine cloud in OpenStack

Apache Cassandra:funzionalità e installazione

Jpg in Pdf senza perdita di dati?

Crea un'immagine di un server e ripristina un server da un'immagine salvata

Domande frequenti su disco di sistema e disco dati