GNU/Linux >> Znalost Linux >  >> Linux

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

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. -1 – příznak říká ls vypsat jeden obrázek na řádek.
  2. -n – určuje maximální počet argumentů, což je 1 pro případ.
  3. -c – dá bash pokyn ke spuštění daného příkazu.
  4. ${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,

  1. {} – vstupní řádek, což je náhradní řetězec nahrazený úplným řádkem přečteným ze vstupního zdroje.
  2. {.} – vstupní řádek mínus rozšíření.
  3. ::: – 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:

  1. -c umožňuje provedení příkazu cyklu for v jednoduchých uvozovkách.
  2. obrázek proměnná je čítač počtu obrázků v adresáři.
  3. 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 “.
  4. „${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.


Linux
  1. Seřadit Jpg podle data vytvoření a převést do jednoho PDF?

  2. Metamorphose 2 – Dávkové přejmenování souborů a složek v systému Linux

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

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

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

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

  1. Použijte SFTP a SCP

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

  3. Jak převést fotografii na černobílý obrázek pomocí ImageMagick?