Odpowiedzi:
Możesz użyć narzędzia mogrify ImageMagick
mogrify -format jpg * .bmp
sudo apt install imagemagick
na 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 hyperslug
i 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ą-format
opcji) 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 bash
szczegóły for
polecenia. ${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 *.bmp
Część w salmonmoose pomocą odpowiedź „wykonać ls *.bmp
, to dla i
części przypisuje każdemu ciąg oddzielonych spacjami i
”. To samo można osiągnąć, *.bmp
ponieważ 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 i
var 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 - find
zamiast tego możesz użyć polecenia. Zobacz man find
szczegół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 find
najpierw)
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
.