V oblasti výpočetní techniky Dávkové zpracování je provádění řady úloh v programu neinteraktivně. Tato příručka vám nabídne 4 jednoduché způsoby, jak dávkově převést několik .PNG
obrázky do .JPG
a naopak pomocí nástrojů příkazového řádku Linuxu.
Použijeme převést nástroj příkazového řádku ve všech příkladech, můžete však také použít mogrify abyste toho dosáhli.
Syntaxe pro použití převést je:
$ convert input-option input-file output-option output-file
A pro mogrify je:
$ mogrify options input-file
Poznámka :Pomocí mogrify , původní soubor s obrázkem je ve výchozím nastavení nahrazen novým souborem s obrázkem, ale je možné tomu zabránit použitím určitých možností, které najdete na manuálové stránce.
Níže jsou uvedeny různé způsoby hromadného převodu všech vašich .PNG
obrázky do .JPG
formát, pokud chcete převést .JPG
na .PNG
, můžete příkazy upravit podle svých potřeb.
1. Převeďte PNG na JPG pomocí příkazů ‚ls‘ a ‚xargs‘
Příkaz ls vám umožňuje vypsat všechny vaše png obrázky a xargs umožnit sestavení a provedení konverze příkaz ze standardního vstupu pro převod všech .png
obrázky do .jpg
.
----------- Convert PNG to JPG ----------- $ ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"' ----------- Convert JPG to PNG ----------- $ ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'
Vysvětlení možností použitých ve výše uvedeném příkazu.
-1
– příznak říká ls vypsat jeden obrázek na řádek.-n
– určuje maximální počet argumentů, což je 1 pro případ.-c
– dá bash pokyn ke spuštění daného příkazu.${0%.png}.jpg
– nastaví název nového převedeného obrázku, % znak pomáhá odstranit starou příponu souboru.


Použil jsem ls -ltr
příkaz k zobrazení seznamu všech souborů podle data a času změny.
Podobně můžete použít výše uvedený příkaz k převodu všech vašich .jpg
obrázky do .png
vyladěním výše uvedeného příkazu.
2. Převeďte PNG na JPG pomocí příkazu GNU ‚Parallel‘
GNU Parallel umožňuje uživateli paralelně vytvářet a spouštět příkazy shellu ze standardního vstupu. Ujistěte se, že máte na svém systému nainstalovaný GNU Parallel, jinak jej nainstalujte pomocí příslušných příkazů níže:
$ sudo apt-get install parallel [On Debian/Ubuntu systems] $ sudo yum install parallel [On RHEL/CentOS and Fedora]
Jednou Paralelní nainstalovaný nástroj, můžete spustit následující příkaz pro převod všech .png
obrázky do .jpg
formát ze standardního vstupu.
----------- Convert PNG to JPG ----------- $ parallel convert '{}' '{.}.jpg' ::: *.png ----------- Convert JPG to PNG ----------- $ parallel convert '{}' '{.}.png' ::: *.jpg
Kde,
{}
– vstupní řádek, což je náhradní řetězec nahrazený úplným řádkem přečteným ze vstupního zdroje.{.}
– vstupní řádek mínus rozšíření.:::
– určuje zdroj vstupu, což je příkazový řádek pro výše uvedený příklad, kde *png nebo *jpg je argument.


Případně můžete také použít ls a paralelní příkazy dohromady pro hromadnou konverzi všech obrázků, jak je znázorněno:
----------- Convert PNG to JPG ----------- $ ls -1 *.png | parallel convert '{}' '{.}.jpg' ----------- Convert JPG to PNG ----------- $ ls -1 *.jpg | parallel convert '{}' '{.}.png'
3. Převeďte PNG na JPG pomocí příkazu „for loop“
Abyste se vyhnuli shonu s psaním skriptu shellu, můžete spustit for loop
z příkazového řádku takto:
----------- Convert PNG to JPG ----------- $ bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done' ----------- Convert JPG to PNG ----------- $ bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'
Popis každé možnosti použité ve výše uvedeném příkazu:
- -c umožňuje provedení příkazu cyklu for v jednoduchých uvozovkách.
- obrázek proměnná je čítač počtu obrázků v adresáři.
- Při každé operaci převodu informuje příkaz echo uživatele, že obrázek ve formátu png byl převeden na jpg formátu a naopak v řádku $image převedeno na ${image%.png}.jpg “.
- „${image%.png}.jpg“ vytvoří název převedeného obrázku, kde % odebere příponu starého formátu obrázku.


4. Převeďte PNG na JPG pomocí Shell Script
Pokud nechcete zašpinit příkazový řádek jako v předchozím příkladu, napište malý skript, jako je tento:
Poznámka :Vhodně zaměňte .png
a .jpg
rozšíření jako v příkladu níže pro převod z jednoho formátu do druhého.
#!/bin/bash #convert for image in *.png; do convert "$image" "${image%.png}.jpg" echo “image $image converted to ${image%.png}.jpg ” done exit 0
Uložte jej jako convert.sh
a udělejte skript spustitelným a poté jej spusťte z adresáře, který obsahuje vaše obrázky.
$ chmod +x convert.sh $ ./convert.sh


Stručně řečeno, probrali jsme některé důležité způsoby hromadného převodu .png
obrázky do .jpg
formátu a naopak. Pokud chcete optimalizovat obrázky, můžete si projít našeho průvodce, který ukazuje, jak komprimovat obrázky png a jpg v Linuxu.
Můžete se s námi také podělit o jakékoli další metody, včetně nástrojů příkazového řádku Linuxu pro převod obrázků z jednoho formátu do druhého na terminálu, nebo se na něco zeptat v sekci komentářů níže.