Elaborazione batch di immagini tif? Conversione da .tif a .jpeg


41

Sto cercando di convertire in massa una manciata di .tiffile. Ho scoperto che Phatch potrebbe sembrare un buon candidato, ma sto eseguendo Ubuntu 11.04. Sembra che non abbiano un .debper la mia versione.

Chiunque ha tutte le alternative alla phatch o qualsiasi altre raccomandazioni per quanto riguarda rapidamente convertire in batch tifdi jpegfile.

Sto cercando una soluzione non Photoshop (ala Wine).

Risposte:


75

Facile. Installa imagemagick :

sudo apt-get install imagemagick

Il suo utilizzo più semplice è:

convert File.tif File.jpg

È intelligente e va dalla tua estensione di file.

Ora, per fare conversioni batch, dovremo usare un loop.

cd nella directory in cui si trovano i tuoi file tif.

poi:

for f in *.tif; do  echo "Converting $f"; convert "$f"  "$(basename "$f" .tif).jpg"; done

Leggi anche come:

for f in *.tif
do  
    echo "Converting $f" 
    convert "$f"  "$(basename "$f" .tif).jpg" 
done

Questo dovrebbe farlo!

Inoltre, una volta convertiti tutti i file e verificato l'integrità del nuovo jpg, esegui semplicemente rm *.tifquella directory per eliminare tutti i tuoi vecchi file .tif. Fai attenzione agli asterischi, non aggiungere uno spazio dopo il *o eliminerai tutti i tuoi file nella directory.

Suggerimento: se hai una cartella con sottocartelle che contiene queste immagini. Puoi usarlo per loop per trovare tutti i file .TIF all'interno di quella cartella:

for f in $(find -name *.tif); do ...; done

Questo dovrebbe stampare Converting filename.tifo Converting filename?
nitrato di sodio

1
@sodiumnitrate dirà "Conversione nomefile.tif". il basenamecomando accetta 2 argomenti, ad esempio basename file.tif .tifrestituirà "file" rimuovendo l'estensione .tif. Se lo desideri, puoi modificare il ciclo in modo da dire "Conversione di filename.tif in nomefile.jpg" con lo stesso comando basename.
Matt,

findIl primo argomento dovrebbe essere il percorso, quindi dovrebbe essere l'ultima riga for f in $(find . -name *.tif); do ...; done(dal momento che abbiamo già cdinserito nella directory). Ho provato a modificare la risposta di @Matt ma le modifiche devono essere almeno 6 caratteri per qualche motivo.
mrtnmgs,

Grazie ..................................... lavoro
balaji

22

Ho trovato questa domanda mentre cercavo di farlo da solo, per riferimenti futuri puoi anche farlo in questo modo:

convert *.tiff -set filename: "%t" %[filename:].jpg

o per metterlo in una sottodirectory

mkdir jpg
convert *.tiff -set filename: "%t" jpg/%[filename:].jpg

1
Sì per la gestione del nome file integrata.
beerbajay,

Questo ha funzionato benissimo anche con i file png. Tuttavia, il comportamento dei pdf era diverso.
wdkrnls,

Mi piacerebbe vederlo funzionare, tuttavia, questo ha riportato un errore di bus su ImageMagick 6.6.9-7 2014-03-06 Q16 (OpenMP) su Ubuntu 64. La risposta accettata funziona bene.
TFuto

Un avvertimento: questo mi ha bloccato l'intero sistema (GNOME 3) e ho dovuto spegnere il computer con forza
0__

2

Imagemagick dovrebbe essere in grado di convertirli. È un pacchetto di programmi a riga di comando, se sei d'accordo.

Parte di ciò è convertita -

uomo converti:

converti: converti tra formati di immagine e ridimensiona un'immagine, sfocatura, ritaglio, despeckle, retinatura, disegno, capovolgi, unisci, ricampiona e molto altro ancora.


1
La risposta di Matt è in realtà molto più utile
marto

1
Sì. Sei proprio lì.
chrisjlee,

1

Se preferisci un'applicazione GUI, puoi installare Phatch attraverso i normali repository. Apri Ubuntu Software Center e cercalo. Non sono più su 11.04 ma all'epoca l'avevo installato.


1

Le risposte sopra usate *.tifper la selezione del tif, ma questo restituirà un errore se ci sono troppi file nella directory di lavoro corrente. Una semplice soluzione consiste nell'utilizzare uno script Python per convertire ogni file nel CWD:

import glob, os

for c, i in enumerate(glob.glob('ecco_images/*')):
  print(' * converting', i)
  os.system('convert ' + i + ' ' + i.replace('.TIF','.jpg'))

for f in *.tifnon sbaglierà, ma lo convert *.tiffarà.
Muru,

Ah, grazie @muru! Pensavo che l'espansione * sarebbe stata la stessa a livello di sistema operativo, ma sono felice di essere corretta.
duhaime,

0

Vorrei aggiungere alla risposta di @ Matt che, se si desidera salvare i file nelle sottocartelle, è possibile effettuare le seguenti operazioni:

find -name *.tif | while read f; do echo "Converting $f"; convert "$f"  "${f%.*}".jpg; done

Questo gestisce anche il problema se il percorso / nome file contiene spazi


0

La soluzione GUI di GIMP che utilizza un plug-in di processo batch

Funziona in Ubuntu 18.04 usando GIMP 2.8


Finestra di dialogo Input processore batch

Finestra di dialogo Input processo batch


Finestra di dialogo Output processore batch

Finestra di dialogo Output processore batch


Istruzioni per l'installazione

1 - Scarica il file del plug-in corrente dalla home page di DBP - David's Batch Processor sul desktop. Per Ubuntu 18.04 rovinando Gimp 2.8 il file che ha funzionato per me era dbpSrc-1-1-9.tgz .

2 - Prendi alcuni file di sviluppo GIMP:

sudo apt-get install libgimp2.0-dev gcc cpp g++

3 - Passa alla directory del codice sorgente del sistema:

cd /usr/src/

4 - Estrarre il plug-in dal desktop nella propria directory del codice sorgente. Sostituisci [nome utente] con il tuo nome utente corrente e usa il nome file che hai scaricato sopra nel passaggio 1:

sudo tar -xvzf /home/[username]/Desktop/dbpSrc-1-1-9.tgz

5 - Passa alla directory del codice sorgente del plugin:

cd dbp-1.1.9

6 - Compila il plugin:

sudo make

7 - Installa il plugin:

sudo make install

8 - Avvia GIMP e troverai il plugin sotto Menu-> Filtri-> Processo batch.

Processo batch GIMP. Percorso menu

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.