Bagaimana saya bisa skala semua gambar dalam folder dengan lebar yang sama?

97

Saya ingin mengatur skala semua gambar dalam folder yang diberikan dengan lebar yang sama (tetapi ketinggian yang disesuaikan dengan skala yang berbeda). Bagaimana saya bisa melakukan ini menggunakan alat berbasis GUI atau command-line?

Untuk poin bonus, apakah mungkin untuk membatasi gambar mana yang diskalakan berdasarkan lebar awal mereka (yaitu, hanya skala gambar yang memiliki lebar> x dan / atau lebar <y)?

david.libremone
sumber
avconv dapat melakukan ini melalui CLI - Lihat: libav.org/avconv.html#scale-1
Penatua Geek

Jawaban:

152

Ini sangat mudah dilakukan dengan imagemagick . Anda harus dapat menginstalnya di Pusat Perangkat Lunak. Saya akan menyarankan untuk pemrosesan batch gambar.

Mengubah ukuran batch sangat sederhana (saya mengujinya dengan Ubuntu 11.10). Gunakan perintah berikut untuk mengubah ukuran setiap file .jpg hingga 200 piksel, dengan menjaga rasio aspek:

$ convert '*.jpg[200x]' resized%03d.png

Anda dapat mempertahankan nama file dengan menggunakan opsi -set. Ex:

convert "images/*.jpg[250x]" -set filename:base "%[base]" "images/new_folder/%[filename:base].jpg"

Jika Anda memiliki lebih banyak file, Anda harus menggunakan dengan find

find /folder -iname '*.JPG' -exec convert \{} -verbose -set filename:base "%[base]" -resize 1920x1080\> "/folder/images/%[filename:base].JPG" \;

Ini hanya menggores permukaan kekuatan imagemagick. Mengubah ukuran dapat disetel tanpa henti . Untuk mengubah ukuran lebih lanjut, Anda harus menggunakan -resizeopsi.

Anda dapat membatasi pengubahan ukuran menjadi menyusut :

$ convert '*.jpg[300x>]' thumb-300-%03d.png

atau memperbesar :

$ convert '*.jpg[300x<]' thumb-300-%03d.png

Lihat dokumentasi geometri untuk melihat lebih banyak opsi.

bandi
sumber
1
Kenapa jpg ke png?
JohnyTex
3
Ekstensi .jpg dan .png hanyalah contoh untuk menunjukkan penggunaan berbagai format.
bandi
Untuk info lebih lanjut tentang opsi -set: imagemagick.org/script/command-line-options.php ; pada dasarnya, -set <property-name> <value>tetapkan properti; %<one-character>dan %[<one-or-more-characters>]diperluas oleh Imagemagick ke nilainya; properti yang digunakan untuk menentukan secara terprogram nama file keluaran harus dimulai filename:, jadi kita perlu menyalin baseproperti, yang berisi jalur gambar, ke filename:<something>properti.
marcotama
1
Terima kasih telah berbagi trik ini, saya tidak tahu!
marcotama
2
properti gambar tidak dikenal "% [base]"
Posting Diri
32

Untuk GUI, Phatch "satu klik bernilai ribuan foto" adalah yang terbaik untuk pekerjaan cepat tersebut. Sudah ada di repositori Ubuntu.

sudo apt-get install phatch
  1. Tambahkan Skala & Simpan item
  2. Tetapkan skala / opsi pengubahan ukuran
  3. Atur opsi simpan / keluaran
  4. Lari
  5. Atur folder input
  6. Klik kumpulan untuk menjalankan

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

user.dz
sumber
2
Untuk upvote, contoh bagaimana sebenarnya menyelesaikan tugas dalam pertanyaan akan menyenangkan :) Tapi terima kasih atas tipnya, alat yang bagus!
jaywink
2
Ini tidak berfungsi pada mesin saya (Ubuntu Mate 16.04). Aplikasi ini macet di layar startup
Gunith D
1
@GunithDevasurendra, coba dari baris perintah untuk memeriksa kesalahan. jika Anda tidak bisa menyelesaikannya, silakan tulis pertanyaan lain dan sertakan output itu.
user.dz
1
Alat hebat, saya menggunakannya selama bertahun-tahun. Sayangnya itu tidak dirawat dan tidak berfungsi di versi Ubuntu saat ini. Semoga ada yang bisa fork kode untuk memperbaikinya.
Diego V
Pada Fedora tidak sama dengan di atas dan tidak memiliki fungsi seperti itu
Vlad
29

Coba ini:

sudo apt-get install gimp-plugin-registry

Kemudian, buka Gimp dan buka plugin Batch yang ditemukan di Filters > Batch > Batch Process.

Pilih gambar Anda di Inputtab, dan tentukan operasi Ubah Ukuran di Resizetab yang dinamai mengejutkan .

Informasi lebih lanjut dapat ditemukan di sini .

TuanCharlo
sumber
21

Coba mogrifyperintah dari alat ImageMagick.

  • berikan jalur untuk memisahkan output dari aslinya
  • berikan lebar atau tinggi thumbnail yang diinginkan, di bawah contoh lebar
  • dengan cara ini Anda menyimpan nama file asli :-)

Contoh:

$ mogrify -path small/ -auto-orient -thumbnail 300x *.jpg
miguelfg
sumber
1
Ini jawaban terbaik menurut saya!
Tom
2
$ mogrify -path small / -resize 300x * .jpg
Iurie Malai
+1 dan Anda dapat mengubah ukuran sisi terpanjang apakah itu untuk potret atau gambar yang diputar lansekap: stackoverflow.com/a/5694903/227926
therobyouknow
8

Menjawab dan menerima (dan saya menggunakan ImageMagick) tetapi untuk kelengkapan ... Saya memiliki bos non-teknis yang menginginkan penampil sederhana dengan beberapa alat dasar dan itu harus GUI. Saya memutuskan gThumb untuknya.

Pada tampilan thumbnail Anda ...

  • Pilih gambar yang ingin Anda ubah ukurannya
  • Mulai fungsi ubah ukuran (klik ikon Kunci Inggris> Ubah Ukuran Gambar ..)
  • Masukkan ukuran baru berdasarkan piksel atau persentase
  • Pilih folder output, dan pergilah.
Dennis
sumber
Untuk mengubah ukuran itu adalah alternatif yang layak untuk Phatch sampai diperbaiki untuk 16,04.
Hastig Zusammenstellen
3

Untuk mengubah ukuran gambar batch saya telah melihat banyak paket dan akhirnya menemukan satu dengan antarmuka yang dapat digunakan - Converseen . Setelah Anda menemukan bahwa pengaturan penting agak tersembunyi di panel kiri yang dapat digulir, semuanya baik-baik saja.
Tidak yakin apakah ini memenuhi semua kasus penggunaan OP, tetapi Anda mungkin tidak perlu melihat UI imagemagick atau phatch yang unik.
Anehnya, paket manajemen foto seperti digikam, f-spot, fotoxx atau shotwell tampaknya tidak mengenali perlunya menyalin / mengubah ukuran kumpulan gambar sebelum mengunggah ke layanan online seperti photobucket atau (gag) flickr. Layanan ini ingin kita melakukan hal - hal dengan cara mereka sendiri jadi saya tidak percaya mereka untuk mendukung yang asli.

Mike
sumber