Jawaban:
Anda dapat menggunakan alat mogrify ImageMagick
mogrify -format jpg * .bmp
sudo apt install imagemagickdi Ubuntu dan Anda dapat mengatur kualitasnya dengan menambahkan-quality 100
Anda mungkin memasang ImageMagick di Ubuntu.
Itu bisa dilakukan ,
convert filename.bmp filename.jpg
memperbarui:
The mogrify(dijawab oleh hyperslugdan disebut oleh cjm) juga merupakan pilihan yang baik.
Gunakan program mogrify untuk mengubah ukuran gambar, blur, krop, despeckle, gentar, menggambar, membalik, bergabung, sampel ulang, dan banyak lagi.
Alat ini serupa untuk dikonversi kecuali bahwa file gambar asli ditimpa
(kecuali Anda mengubah akhiran file dengan-formatopsi) dengan perubahan yang Anda minta.
Biarkan saya melakukan sedikit perubahan pada jawaban salmonmoose:
for i in `ls *.bmp`; do convert $i $i.jpg; done
Di atas berfungsi tetapi menghasilkan file bernama "bmp.jpg". Anda bisa mendapatkan file .jpg dengan perintah ini:
for i in *.bmp; do convert ${i} ${i%bmp}jpg; done
Lihat man bashuntuk detail forperintah. Bagian ini ${i%bmp}berarti string "$ {i}" tanpa substring "bmp" di akhir.
Ada operasi lain untuk mengubah string di "$ {i}". "$ i" adalah singkatan untuk "$ {i}". Bagian ls *.bmpdalam jawaban salmonmoose berarti "mengeksekusi ls *.bmp, maka bagian for imenetapkan setiap string yang dipisahkan oleh spasi untuk i". Hal yang sama dicapai oleh *.bmpkarena cocok dengan semua nama file di direktori.
Ada kekurangan dengan for- jika file dalam direktori Anda memiliki spasi dalam nama, misalnya "gambar pernikahan 1.bmp", itu akan diberikan 3 kali ke ivar, melakukan perintah-perintah ini:
convert wedding wedding.jpg
convert picture picture.jpg
convert 1.bmp 1.bmp.jpg
Dalam jawaban saya juga kecocokan "$ {i% bmp}" gagal.
Tapi ada solusinya - Anda bisa menggunakan findperintah sebagai gantinya. Lihat man finddetailnya. Anda harus mengetikkan sesuatu seperti berikut (silakan periksa sintaks dengan halaman manual sebelum mencobanya):
find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;
(Saya tidak begitu yakin dengan nama bagiannya, dan saya ragu beberapa -execbagian, lihat man finddulu)
Jika Anda ingin menggabungkan semua gambar dalam satu file .jpg, Anda dapat menggabungkannya dengan filter lain, seperti yang disebutkan dalam jawaban pertama.
for i in `ls *.bmp`; do convert $i $i.jpg; done
Ya, ini akan membuat banyak file bernama filename.bmp.jpg tetapi itu akan berhasil.
ls.