Jawaban:
Anda dapat menggunakan alat mogrify ImageMagick
mogrify -format jpg * .bmp
sudo apt install imagemagick
di 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 hyperslug
dan 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-format
opsi) 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 bash
untuk detail for
perintah. 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 *.bmp
dalam jawaban salmonmoose berarti "mengeksekusi ls *.bmp
, maka bagian for i
menetapkan setiap string yang dipisahkan oleh spasi untuk i
". Hal yang sama dicapai oleh *.bmp
karena 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 i
var, 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 find
perintah sebagai gantinya. Lihat man find
detailnya. 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 -exec
bagian, lihat man find
dulu)
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
.