GNU/Linux >> Znalost Linux >  >> Linux

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

Můžete použít nástroj ImageMagick mogrify

mogrify -format jpg *.bmp

Pravděpodobně máte na Ubuntu nainstalovaný ImageMagick.
To může stačit,

convert filename.bmp filename.jpg

aktualizace:

mogrify (odpověděl hyperslug a odkazuje na cjm ) je také dobrá volba.

Použijte mogrify program pro změnu velikosti obrázku, rozmazání, oříznutí, odstranění skvrn, rozklad, kreslení, převrácení, spojení, převzorkování a mnoho dalšího.
Tento nástroj je podobný nástroji konvertovat kromě toho, že původní soubor obrázku je přepsán
(pokud nezměníte příponu souboru s -format možnost) se všemi požadovanými změnami.


Dovolte mi udělat malou změnu v odpovědi lososího moose:

for i in `ls *.bmp`; do convert $i $i.jpg; done

Výše uvedené funguje, ale generuje soubory s názvem "bmp.jpg". Soubory .jpg můžete získat pomocí tohoto příkazu:

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

Viz man bash podrobnosti o for příkaz. ${i%bmp} část znamená řetězec "${i}" bez podřetězce "bmp" na konci.

Existují další operace pro transformaci řetězce v "${i}". "$i" je zkratka pro "${i}". ls *.bmp část v odpovědi lososa znamená „provést ls *.bmp , pak pro i part přiřadí každému řetězci oddělenému mezerami i ". Totéž je dosaženo pomocí *.bmp protože odpovídá všem názvům souborů v adresáři.

for má nevýhodu - pokud soubory ve vašem adresáři mají v názvu mezery, například "svatební obrázek 1.bmp", bude přiřazen 3krát k i var, provádějící tyto příkazy:

convert wedding wedding.jpg 
convert picture picture.jpg
convert 1.bmp  1.bmp.jpg

V mé odpovědi také selhává shoda "${i%bmp}".

Ale existuje řešení - můžete použít find místo toho příkaz. Viz man find pro detaily. Měli byste napsat něco jako následující (než to vyzkoušíte, zkontrolujte syntaxi pomocí manuálové stránky):

find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;

(Nejsem si příliš jistý částí názvu a mám určité pochybnosti o -exec část, viz man find první)

Pokud chcete spojit všechny obrázky do jednoho souboru .jpg, můžete je zřetězit pomocí jiného filtru, jak je uvedeno v první odpovědi.


Linux
  1. Převádějte zvukové soubory pomocí tohoto všestranného příkazu Linux

  2. Příkazy hledání pro Linux

  3. Linux ls Command - Seznam souborů

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

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

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

  1. Jak převést soubory do kódování UTF-8 v Linuxu

  2. Soubory protokolu Linux

  3. Příkaz mcopy v Linuxu