GNU/Linux >> Linux Esercitazione >  >> Linux

Converti una serie di file BMP in JPEG su Linux

Puoi usare lo strumento mogrify di ImageMagick

mogrify -format jpg *.bmp

È probabile che ImageMagick sia installato su Ubuntu.
Questo può fare,

convert filename.bmp filename.jpg

aggiornamento:

Il mogrify (risposto da hyperslug e indicato da cjm ) è anche una buona opzione.

Usa mogrify programma per ridimensionare un'immagine, sfocare, ritagliare, eliminare macchie, dithering, disegnare, capovolgere, unire, ricampionare e molto altro.
Questo strumento è simile a converti tranne per il fatto che il file immagine originale viene sovrascritto
(a meno che non modifichi il suffisso del file con -format opzione) con tutte le modifiche richieste.


Fammi fare una piccola modifica alla risposta di salmonmoose:

for i in `ls *.bmp`; do convert $i $i.jpg; done

Quanto sopra funziona ma genera file denominati "bmp.jpg". Puoi ottenere file .jpg con questo comando:

for i in *.bmp; do convert ${i} ${i%bmp}jpg; done

Vedi man bash per i dettagli del for comando. Il ${i%bmp} parte indica la stringa "${i}" senza la sottostringa "bmp" alla fine.

Ci sono altre operazioni per trasformare la stringa in "${i}". "$i" è una scorciatoia per "${i}". Il ls *.bmp parte nella risposta di salmonmoose significa "esegui ls *.bmp , quindi per i part assegna ogni stringa separata da spazi a i ". Lo stesso si ottiene con *.bmp perché corrisponde a tutti i nomi di file nella directory.

C'è uno svantaggio con for - se i file nella tua directory hanno degli spazi nel nome, ad esempio "immagine matrimonio 1.bmp", verrà assegnato 3 volte al i var, eseguendo questi comandi:

convert wedding wedding.jpg 
convert picture picture.jpg
convert 1.bmp  1.bmp.jpg

Nella mia risposta anche la corrispondenza "${i%bmp}" fallisce.

Ma c'è una soluzione:puoi usare il find comando invece. Vedi man find per dettagli. Dovresti digitare qualcosa di simile al seguente (controlla la sintassi con la pagina man prima di provarlo):

find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;

(Non sono molto sicuro della parte del nome, e ho qualche dubbio nel -exec parte, vedi man find prima)

Se vuoi unire tutte le immagini in un file .jpg, puoi concatenarle con un altro filtro, come quello menzionato nella prima risposta.


Linux
  1. Converti file audio con questo versatile comando Linux

  2. Come convertire file in codifica UTF-8 in Linux

  3. Comandi di ricerca di Linux

  4. Comando mcopy in Linux

  5. Linux rinomina i file in maiuscolo

Come convertire in batch file PDF su Linux

Steganografia:nascondi i file all'interno delle immagini in Linux

Come convertire i file PDF in formato EPUB utilizzando Calibre in Linux

Come convertire l'immagine della fotocamera Raw in JPEG in Linux

Come convertire in batch le immagini PNG in formato JPG in Linux

comando ls in Linux/UNIX