Odpowiedzi:
Możesz użyć narzędzia mogrify ImageMagick
mogrify -format jpg * .bmp
sudo apt install imagemagickna Ubuntu i możesz ustawić jakość, dodając-quality 100
Prawdopodobnie masz zainstalowany ImageMagick na Ubuntu.
Że może to zrobić ,
convert filename.bmp filename.jpg
aktualizacja:
Opcja mogrify(odpowiedź udzielona przez hyperslugi skierowana przez cjm) jest również dobrą opcją.
Użyj programu mogrify , aby zmienić rozmiar obrazu, rozmycie, kadrowanie, usuwanie efektu , roztrząsanie , rysowanie, odwracanie, łączenie, ponowne próbkowanie i wiele więcej.
To narzędzie jest podobne do konwertowania, z tym że oryginalny plik obrazu jest zastępowany
(chyba że zmienisz sufiks pliku za pomocą-formatopcji) wraz ze wszystkimi żądanymi zmianami.
Pozwólcie, że zrobię małą zmianę w odpowiedzi łososia:
for i in `ls *.bmp`; do convert $i $i.jpg; done
Powyższe działa, ale generuje pliki o nazwie „bmp.jpg”. Możesz uzyskać pliki .jpg za pomocą tego polecenia:
for i in *.bmp; do convert ${i} ${i%bmp}jpg; done
Zobacz man bashszczegóły forpolecenia. ${i%bmp}Część oznacza napis „$ {i}” bez „bmp” podciągu na końcu.
Istnieją inne operacje przekształcania łańcucha w „$ {i}”. „$ i” to skrót od „$ {i}”. ls *.bmpCzęść w salmonmoose pomocą odpowiedź „wykonać ls *.bmp, to dla iczęści przypisuje każdemu ciąg oddzielonych spacjami i”. To samo można osiągnąć, *.bmpponieważ pasuje do wszystkich nazw plików w katalogu.
Wadą jest to, forże - jeśli pliki w katalogu mają spacje w nazwie, na przykład „zdjęcie ślubne 1.bmp”, zostaną przypisane do ivar 3 razy , wykonując następujące polecenia:
convert wedding wedding.jpg
convert picture picture.jpg
convert 1.bmp 1.bmp.jpg
W mojej odpowiedzi również dopasowanie „$ {i% bmp}” kończy się niepowodzeniem.
Ale jest rozwiązanie - findzamiast tego możesz użyć polecenia. Zobacz man findszczegóły. Powinieneś wpisać coś takiego (przed wypróbowaniem sprawdź składnię ze stroną podręcznika):
find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;
(Nie jestem pewien co do nazwy i mam co do tego wątpliwości -exec, patrz man findnajpierw)
Jeśli chcesz połączyć wszystkie obrazy w jednym pliku .jpg, możesz połączyć je z innym filtrem, jak ten wymieniony w pierwszej odpowiedzi.
for i in `ls *.bmp`; do convert $i $i.jpg; done
Tak, utworzy to zbiór plików o nazwie filename.bmp.jpg, ale wykona zadanie.
ls.