it-swarm-id.com

Konversikan banyak file BMP ke JPEG di Linux

Seseorang mengirimi saya banyak file BMP dan saya membutuhkannya dalam format JPEG. Saya dapat mengonversinya satu per satu menggunakan GIMP, tetapi saya lebih suka melakukan semuanya sekaligus. Saya punya Ubuntu.

30
JoelFan

Anda dapat menggunakan alat mogrify ImageMagick

 mogrify -format jpg * .bmp 
42
hyperslug

Anda kemungkinan memiliki ImageMagick diinstal pada Ubuntu.
Itu dapat melakukan ,

convert filename.bmp filename.jpg

memperbarui:

mogrify (dijawab oleh hyperslug dan dirujuk oleh cjm) juga merupakan pilihan yang baik.

Gunakan program mogrify untuk mengubah ukuran gambar, mengaburkan, memotong, menghilangkan noda, gentar, menggambar, membalik, bergabung, mengambil sampel, dan banyak lagi.
Alat ini serupa dengan convert kecuali bahwa file gambar asli ditimpa
(kecuali Anda mengubah akhiran file dengan opsi -format) dengan perubahan apa pun yang Anda minta.

15
nik

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 perincian perintah for. Bagian ${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 "jalankan ls *.bmp, maka bagian i memberikan setiap string yang dipisahkan oleh spasi ke i". Hal yang sama dicapai oleh *.bmp karena cocok dengan semua nama file dalam direktori.

Ada kekurangan dengan for - jika file dalam direktori Anda memiliki spasi dalam nama, misalnya "gambar pernikahan 1.bmp", itu akan ditetapkan 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 perintah find sebagai gantinya. Lihat man find untuk 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 bagian nama, dan saya ragu dalam bagian -exec, lihat man find terlebih dahulu)

Jika Anda ingin menggabungkan semua gambar dalam satu file .jpg, Anda dapat menggabungkannya dengan filter lain, seperti yang disebutkan dalam jawaban pertama.

7
anonymous
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.

1
salmonmoose

Anda dapat mencapainya dengan bantuan ImageMagick. Di tautan ini adalah Contoh

0
Matias