GNU/Linux >> Belajar Linux >  >> Linux

Konversi batch PNG ke JPG di linux

Taruhan terbaik Anda adalah menggunakan ImageMagick.

Saya bukan ahli dalam penggunaan sebenarnya, tetapi saya tahu Anda dapat melakukan hampir semua hal yang berhubungan dengan gambar dengan ini!

Contohnya adalah:

convert image.png image.jpg

yang akan mempertahankan yang asli serta membuat gambar yang dikonversi.

Untuk konversi batch, menurut saya Anda perlu menggunakan alat Mogrify yang merupakan bagian dari ImageMagick.

Perlu diingat bahwa ini menimpa gambar lama.

Perintahnya adalah:

mogrify -format jpg *.png

Saya punya beberapa solusi lagi.

Solusi paling sederhana adalah seperti kebanyakan yang sudah diposting. Sebuah bash sederhana untuk loop.

for i in *.png ; do convert "$i" "${i%.*}.jpg" ; done

Untuk beberapa alasan saya cenderung menghindari loop di bash jadi inilah pendekatan xargs yang lebih unxy, menggunakan bash untuk name-mangling.

ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.*}.jpg"'

Yang saya gunakan. Ini menggunakan GNU Parallel untuk menjalankan banyak pekerjaan sekaligus, memberi Anda peningkatan kinerja. Itu diinstal secara default pada banyak sistem dan hampir pasti ada di repo Anda (ini adalah program yang bagus untuk dimiliki).

ls -1 *.png | parallel convert '{}' '{.}.jpg'

Jumlah pekerjaan default ke jumlah inti CPU yang Anda miliki. Saya menemukan penggunaan CPU yang lebih baik menggunakan 3 pekerjaan pada sistem dual-core saya.

ls -1 *.png | parallel -j 3 convert '{}' '{.}.jpg'

Dan jika Anda menginginkan beberapa statistik (ETA, tugas selesai, waktu rata-rata per tugas...)

ls -1 *.png | parallel --eta convert '{}' '{.}.jpg'

Ada juga sintaks alternatif jika Anda menggunakan GNU Parallel.

parallel convert '{}' '{.}.jpg' ::: *.png

Dan sintaks serupa untuk beberapa versi lain (termasuk debian).

parallel convert '{}' '{.}.jpg' -- *.png

convert perintah yang ditemukan di banyak distribusi Linux diinstal sebagai bagian dari suite ImageMagick. Berikut kode bash untuk menjalankan convert pada semua file PNG dalam direktori dan hindari masalah ekstensi ganda:

for img in *.png; do
    filename=${img%.*}
    convert "$filename.png" "$filename.jpg"
done

Linux
  1. gambar linux dari clipboard

  2. Konversi batch Linux:Ubah kualitas jpg dengan konversi tetapi pertahankan namanya

  3. Mengonversi mesin terbang TrueType ke gambar PNG?

  1. Linux mengganti nama file menjadi huruf besar

  2. Bagaimana cara mengonversi file pptx ke jpg atau png (untuk setiap slide) di linux?

  3. Bagaimana cara mengubah PDF menjadi JPG dengan baris perintah di Linux?

  1. Cara Mengoptimalkan dan Mengompresi Gambar JPEG atau PNG di Commandline Linux

  2. Konversi gambar Webp ke PNG dengan perintah Linux

  3. konversi pdf ke 2up di linux