Saya punya banyak foto. Mereka semua sama tingginya, dan saya mencoba menyatukannya menjadi gambar komposit menggunakan program montage ImageMagick via Bash. Masalahnya adalah bahwa secara default, ukuran ubin (satu gambar menempati satu ubin) sama dengan gambar dengan dimensi terbesar. Oleh karena itu, gambar yang sempit dikelilingi oleh banyak ruang putih. Saya ingin menghapus ruang putih ini. Bagaimana saya bisa melakukannya?
bash
imagemagick
image-manipulation
Gilles 'SANGAT berhenti menjadi jahat'
sumber
sumber
Jawaban:
Coba sesuatu seperti ini:
Ini akan membuat batas antara gambar sekecil mungkin dan apa pun yang ada akan transparan.
Untuk melihat demo perbedaan menggunakan gambar bawaan, coba ini dan bandingkan:
Lihat Penggunaan Montage .
Jika Anda memposting contoh apa yang Anda dapatkan dan mengedit secara manual contoh apa yang Anda inginkan sebagai hasilnya, kami mungkin bisa sedikit lebih dekat dengan itu.
Berikut adalah contoh yang saya sukai lebih baik daripada yang saya posting sebelumnya di atas:
sumber
Saya setuju dengan jawaban yang diterima
-geometry +0+0
untuk menghapus ruang ubin tambahan, dan saya akan menambahkan-mode Concatenate
(dalam kondisi tertentu).Juga, setelah Anda memiliki ukuran yang berbeda dengan
montage
, itu akan sedikit sulit untuk membedakan antara apa yang "latar belakang ubin" (ruang ubin) vs "bingkai" dan "perbatasan" - Saya sering kehilangan jejak, jadi di sini ada test case kecil dengan (diklik) gambar:Yah, semoga ini bermanfaat,
Cheers!
EDIT: Saya mengumpulkan GUI Python / Tkinter / PIL kecil untuk ImageMagick, tkGui_ImageMagick.py - dan akhirnya saya bisa menemukan baris perintah yang tepat untuk sesuatu yang saya inginkan: membuat montase empat gambar, di mana tinggi & lebar ubin dicocokkan dengan apa pun yang merupakan lebar terbesar dari kolom itu (atau ketinggian baris).
Dalam contoh ini, img1 (200x100) dan img2 (300x200) masuk dalam kolom pertama, lebar yang lebih besar adalah 300 - yang harus mengatur lebar ubin img1. Juga, img1 harus memiliki tinggi berkorelasi dengan tinggi img3 yang lebih besar (300 px), yang membentuk baris. Ini dapat ditentukan melalui
extent
operator (lihat juga ImageMagick • Lihat topik - Ubah ukuran dan cetak alih-alih meregangkan ). Dan baris perintah itu membutuhkan panggilan subproses untuk memisahkanmontage
s untuk setiap kolom - dan dari sana, memisahkanconvert
s untuk setiap gambar:Perhatikan di sini, jika kami telah menggunakan
-extents
langsung di garis montase, seperti ini:... kita akan melihat bahwa spesifikasi pertama untuk tinggi (200) akan diabaikan, dan 400 sebagai yang lebih besar akan diterapkan untuk kedua ubin lagian !
Jadi kita harus mengontrol padding setiap gambar individu (dengan memanggil
convert
denganextents
untuk setiap ) - dan kemudian menghindariextents
dimontage
line; dan dengan demikian, kita harus apriori mengetahui lebar (terbesar) dari setiap kolom (dan tinggi setiap baris). Perhatikan juga:convert
) sama sekalimontage
, biasanya-gravity
harus datang setelah (ditentukan sepenuhnya: w & h)-extent
; diconvert
,-gravity
bekerja sebelum-extent
(biasanya)sumber
Tidak dengan
montage
, tetapi terasa lebih akurat dengan yang berikut:x500
menjadi ketinggian akhir yang diinginkansumber