GNU/Linux >> Znalost Linux >  >> Linux

Dávkový převod PNG na JPG v linuxu

Nejlepší by bylo použít ImageMagick.

Nejsem odborník na skutečné použití, ale vím, že s tím můžete dělat cokoli, co souvisí s obrázky!

Příkladem je:

convert image.png image.jpg

který zachová originál i vytvoří převedený obrázek.

Pokud jde o dávkovou konverzi, myslím, že musíte použít nástroj Mogrify, který je součástí ImageMagick.

Mějte na paměti, že toto přepíše staré obrázky.

Příkaz je:

mogrify -format jpg *.png

Mám ještě několik řešení.

Nejjednodušší řešení je stejné jako většina již zveřejněných. Jednoduchá smyčka bash for.

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

Z nějakého důvodu mám tendenci se vyhýbat smyčkám v bash, takže zde je více unixový přístup xargs, který používá bash pro modifikaci jmen.

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

Ten, který používám já. Využívá GNU Parallel ke spouštění více úloh najednou, což vám poskytuje zvýšení výkonu. Na mnoha systémech se standardně instaluje a téměř určitě je ve vašem repozitáři (je to dobrý program mít po ruce).

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

Výchozí počet úloh odpovídá počtu jader CPU, která máte. Našel jsem lepší využití CPU pomocí 3 úloh na mém dvoujádrovém systému.

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

A pokud chcete nějaké statistiky (předpokládaný čas příjezdu, dokončené úlohy, průměrný čas na úlohu...)

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

Pokud používáte GNU Parallel, existuje také alternativní syntaxe.

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

A podobná syntaxe pro některé další verze (včetně debianu).

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

convert příkaz nalezený na mnoha distribucích Linuxu je nainstalován jako součást sady ImageMagick. Zde je bash kód pro spuštění convert na všechny soubory PNG v adresáři a vyhněte se problému s dvojitým rozšířením:

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

Linux
  1. Jak optimalizovat a komprimovat obrázky JPEG nebo PNG v příkazovém řádku Linuxu

  2. linuxový obrázek ze schránky

  3. Jak převést PDF do JPG pomocí příkazového řádku v Linuxu?

  1. Dávková konverze Linuxu:Změňte kvalitu jpg pomocí převodu, ale ponechte jeho název

  2. Převést glyfy TrueType na obrázek PNG?

  3. Převeďte spoustu souborů BMP do JPEG v systému Linux

  1. Linux přejmenovává soubory na velká písmena

  2. Jak převést soubory pptx na jpg nebo png (pro každý snímek) na linuxu?

  3. Převeďte obrázky Webp na PNG pomocí příkazu Linux