Yanıtlar:
ImageMagick'in mogrify aracını kullanabilirsiniz
mogrify -format jpg * .bmp
sudo apt install imagemagick
Ubuntu ve ekleyerek kalitesini ayarlayabilirsiniz-quality 100
Ubuntu'da ImageMagick'in kurulu olması muhtemeldir .
Yani yapabilir ,
convert filename.bmp filename.jpg
güncelleştirme:
mogrify
(Tarafından cevap hyperslug
ve tarafından yönlendirilen cjm
) de iyi bir seçenektir.
Bir görüntüyü yeniden boyutlandırmak, bulanıklaştırmak, kırpmak, despeckle, dither, çizmek, çevirmek, birleştirmek, yeniden örneklemek ve çok daha fazlası için mogrify programını kullanın .
Bu araç benzerlik gösterir dönüştürmek orijinal resim dosyasının üzerine yazılır dışında
(eğer dosya eki değiştirmediğiniz sürece-format
sen istemek değişikliklerle seçeneği).
Somonmoz cevabında küçük bir değişiklik yapmama izin verin:
for i in `ls *.bmp`; do convert $i $i.jpg; done
Yukarıdakiler çalışır ancak "bmp.jpg" adlı dosyaları oluşturur. Bu komutla .jpg dosyalarını alabilirsiniz:
for i in *.bmp; do convert ${i} ${i%bmp}jpg; done
Bkz man bash
ayrıntıları için for
komuta. ${i%bmp}
Bölüm dizesini anlamına gelen "$ {i}" sonunda alt dize "bmp" olmadan.
"$ {İ}" içindeki dizgeyi dönüştürmek için başka işlemler var. "$ i", "$ {i}" için kısa yoldur. ls *.bmp
Salmonmoose cevap araçlarında parçası "yürütme ls *.bmp
ardından için, i
bölüm atar her dize kadar boşluklarla ayrılmış i
". Aynı şey *.bmp
, dizindeki tüm dosya adları ile eşleştiği için de sağlanır .
Bir dezavantajı var for
- dizininizdeki dosyalar adında boşluklar varsa, örneğin "wedding picture 1.bmp" ise, i
bu komutları uygulayarak var'a 3 kez atanacaktır :
convert wedding wedding.jpg
convert picture picture.jpg
convert 1.bmp 1.bmp.jpg
Cevabımda da "$ {i% bmp}" eşleşmesi başarısız oldu.
Ancak bir çözüm var - find
bunun yerine komutu kullanabilirsiniz . Detaylar man find
için bakınız. Şunun gibi bir şey yazmalısınız (lütfen denemeden önce man sayfasının sözdizimini kontrol edin):
find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;
(İsim bölümünden pek emin değilim ve bölüm hakkında bazı şüphelerim var -exec
, man find
önce bakın )
Tüm görüntüleri bir .jpg dosyasında birleştirmek istiyorsanız, ilk yanıtta belirtildiği gibi bunları başka bir filtre ile birleştirebilirsiniz.
for i in `ls *.bmp`; do convert $i $i.jpg; done
Evet, bu dosyaadı.bmp.jpg adlı bir sürü dosya yapacaktır ancak işi yapacaktır.
ls
.