Conversione di formati di file immagine con la riga di comando e sorsi

La conversione di immagini in nuovi formati di file è molto semplice grazie a una varietà di strumenti integrati direttamente in OS X (e nella maggior parte delle distribuzioni Linux). Anche se il metodo più semplice utilizza Anteprima per la conversione delle immagini, esiste un'opzione della riga di comando che utilizza lo stesso strumento di sorso di cui abbiamo discusso in precedenza per eseguire il ridimensionamento in batch dalla riga di comando. Usando i sorsi, puoi convertire singole immagini in nuovi formati di immagine o persino eseguire conversioni di immagini in batch.

Semplice conversione delle immagini dalla riga di comando

Per convertire una singola immagine con sorsi, utilizzare la seguente sintassi della stringa di comando:

sips -s format [image type] [file name] --out [output file]

Ad esempio, su un file denominato "test.jpg" che si desidera convertire in PNG, la sintassi dei sips sarebbe:

sips -s format png test.jpg --out test.png

Conversione di immagini in lotti con sorsi

La conversione di un gruppo di immagini è un po 'più complicata e l'utilizzo di caratteri jolly semplici come il ridimensionamento con sorsi non funziona in modo identico. Scoprirai che usare un carattere jolly generico come * non rinominare il file, quindi useremo uno script di shell molto semplice con la seguente sintassi del comando:

for i in [filename]; do sips -s format [image type] $i --out [destination]/$i.[extension];done

Mettendo quello da usare, convertiremo una cartella di file .jpeg in file png in una nuova sottocartella della directory corrente, chiamata "Converted":

for i in *.jpeg; do sips -s format png $i --out Converted/$i.png;done

L'esecuzione di tale comando può comportare la conversione di tutte le immagini JPEG in formato PNG nella nuova directory.

Una cattura potenzialmente fastidiosa è che i nomi dei file risultanti includeranno anche il tipo di file originale, il che significa che finirai con i file "test.jpeg.png". L'estensione del file rimane corretta, è solo un problema di denominazione. Si potrebbe aggirare il problema rinominandoli all'inizio e aggiungendo successivamente l'estensione file appropriata con uno script bash simile, usando espressioni regolari o rinominato manualmente con mv.

Quando si eseguono sorsi con alcuni formati di file, è possibile che si verifichino errori di "avviso di attesa" relativi ai dati exif, tali errori possono essere ignorati per la maggior parte e la conversione dell'immagine continuerà comunque.

Grazie a Thom per l'idea di conversione batch