GNU/Linux >> Linux Esercitazione >  >> Linux

Conversione in batch di PNG in JPG in Linux

La soluzione migliore sarebbe usare ImageMagick.

Non sono un esperto nell'uso effettivo, ma so che puoi praticamente fare qualsiasi cosa relativa alle immagini con questo!

Un esempio è:

convert image.png image.jpg

che manterrà l'originale oltre a creare l'immagine convertita.

Per quanto riguarda la conversione batch, penso che tu debba utilizzare lo strumento Mogrify che fa parte di ImageMagick.

Tieni presente che questo sovrascrive le vecchie immagini.

Il comando è:

mogrify -format jpg *.png

Ho un altro paio di soluzioni.

La soluzione più semplice è come la maggior parte già pubblicata. Un semplice bash for loop.

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

Per qualche ragione tendo ad evitare i loop in bash, quindi ecco un approccio xargs più unixy, usando bash per la manipolazione dei nomi.

ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.*}.jpg"'

Quello che uso. Utilizza GNU Parallel per eseguire più lavori contemporaneamente, offrendoti un aumento delle prestazioni. È installato di default su molti sistemi ed è quasi sicuramente nel tuo repository (è un buon programma da avere in giro).

ls -1 *.png | parallel convert '{}' '{.}.jpg'

Il numero di lavori predefinito è il numero di core della CPU che hai. Ho riscontrato un migliore utilizzo della CPU utilizzando 3 lavori sul mio sistema dual-core.

ls -1 *.png | parallel -j 3 convert '{}' '{.}.jpg'

E se vuoi qualche statistica (un ETA, lavori completati, tempo medio per lavoro...)

ls -1 *.png | parallel --eta convert '{}' '{.}.jpg'

C'è anche una sintassi alternativa se stai usando GNU Parallel.

parallel convert '{}' '{.}.jpg' ::: *.png

E una sintassi simile per alcune altre versioni (inclusa debian).

parallel convert '{}' '{.}.jpg' -- *.png

Il convert Il comando trovato su molte distribuzioni Linux è installato come parte della suite ImageMagick. Ecco il codice bash per eseguire convert su tutti i file PNG in una directory ed evitare il problema della doppia estensione:

for img in *.png; do
    filename=${img%.*}
    convert "$filename.png" "$filename.jpg"
done

Linux
  1. Come ottimizzare e comprimere immagini JPEG o PNG nella riga di comando di Linux

  2. immagine linux dagli appunti

  3. Come convertire un PDF in JPG con la riga di comando in Linux?

  4. Converti immagini Webp in PNG con il comando Linux

  5. oxps in pdf o immagine - Linux

Come convertire in batch file PDF su Linux

Converti PNG in JPEG, JPEG in PNG usando la riga di comando in Ubuntu

Come convertire un file PDF in un'immagine PNG/JPG in Linux

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

Come convertire una pagina Web in PDF in Linux

Come convertire PDF in immagini PNG e viceversa in Linux