Vyhledávání na webu

4 způsoby hromadného převodu PNG na JPG a naopak


Ve výpočetní technice je dávkové zpracování neinteraktivní provedení řady úloh v programu. Tato příručka vám nabídne 4 jednoduché způsoby, jak dávkově převést několik obrázků .PNG do .JPG a naopak pomocí nástrojů příkazového řádku Linuxu.

Ve všech příkladech použijeme nástroj příkazového řádku convert, k dosažení tohoto cíle však můžete také použít mogrify.

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í funkce mogrify je původní soubor obrázku ve výchozím nastavení nahrazen novým souborem obrázku, ale je možné tomu zabránit tím, pomocí určitých voleb, které najdete na manuálové stránce.

Níže jsou uvedeny různé způsoby hromadného převodu všech obrázků .PNG do formátu .JPG, pokud chcete převést .JPG na .PNG, můžete upravit příkazy 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 obrázky png a xargs umožňují sestavit a spustit příkaz convert ze standardního vstupu pro převod všech .png obrázky na .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. -1 – příznak říká ls, aby vypsal jeden obrázek na řádek.
  2. -n – určuje maximální počet argumentů, což je 1 pro případ.
  3. -c – instruuje bash ke spuštění daného příkazu.
  4. $ {0%.png}.jpg – nastavuje název nového převedeného obrázku, znak % pomáhá odstranit starou příponu souboru.

Použil jsem příkaz ls -ltr k zobrazení seznamu všech souborů podle upraveného data a času.

Podobně můžete použít výše uvedený příkaz k převodu všech vašich obrázků .jpg na .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]

Po instalaci nástroje Parallel můžete spustit následující příkaz pro převod všech obrázků .png do formátu .jpg ze standardního vstupu.

----------- Convert PNG to JPG ----------- 
parallel convert '{}' '{.}.jpg' ::: *.png

----------- Convert JPG to PNG -----------
parallel convert '{}' '{.}.png' ::: *.jpg

Kde,

  1. {} – vstupní řádek, který je náhradním řetězcem nahrazeným úplným řádkem přečteným ze vstupního zdroje.
  2. {.} – vstupní řádek mínus přípona.
  3. ::: – určuje zdroj vstupu, tj. příkazový řádek pro příklad výše, kde je argument *png nebo *jpg.

Případně můžete také použít společně příkazy ls a paralelní k hromadnému převodu 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 cyklus for z příkazového řádku následovně:

----------- 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:

  1. -c umožňuje provedení příkazu cyklu for v jednoduchých uvozovkách.
  2. Proměnná image je počítadlo počtu obrázků v adresáři.
  3. Pro každou operaci převodu informuje příkaz echo uživatele, že obrázek png byl převeden do formátu jpg a naopak v řádku $image převedený na & #36 {image%.png}.jpg “.
  4. „$ {image%.png}.jpg“ vytvoří název převedeného obrázku, kde % odstraní 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: Pro převod z jednoho formátu vhodně zaměňte přípony .png a .jpg jako v příkladu níže. jinému.

#!/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 obrázků .png do formátu .jpg 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 s námi také sdílet 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 položit otázku prostřednictvím sekce komentářů níže.