Saya memiliki lima gambar dengan ukuran: 600x30, 600x30, 600x30, 600x30, 810x30. Namanya adalah: 0.png, 1.png, 2.png, 3.png, 4.png.
Bagaimana cara menggabungkannya secara horizontal untuk membuat gambar berukuran 3210x30 dengan ImageMagick?
Saya memiliki lima gambar dengan ukuran: 600x30, 600x30, 600x30, 600x30, 810x30. Namanya adalah: 0.png, 1.png, 2.png, 3.png, 4.png.
Bagaimana cara menggabungkannya secara horizontal untuk membuat gambar berukuran 3210x30 dengan ImageMagick?
Jawaban:
ImageMagick dikirimkan dengan montage
utilitas. Montase akan menambahkan setiap gambar secara berdampingan sehingga Anda dapat menyesuaikan jarak antara setiap gambar ( -geometry
), dan tata letak umum ( -tile
).
montage [0-5].png -tile 5x1 -geometry +0+0 out.png
Contoh lain dapat ditemukan di halaman Penggunaan Montase
[0-5].png
akan menghasilkan "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", enam file berbeda, tetapi Anda tile 5x1
hanya akan mengambil lima file, meninggalkan Anda dengan dua file output. Ini harus menggunakan [0-4].png
atau -tile 6x1
.
ImageMagick memiliki alat baris perintah bernama ' convert ' untuk menggabungkan gambar secara horizontal, atau untuk tujuan lain. Saya telah mencoba perintah ini dan bekerja dengan sempurna pada kasus Anda:
Untuk menggabungkan gambar secara horizontal:
convert +append *.png out.png
Untuk menumpuk gambar secara vertikal:
convert -append *.png out.png
convert -append %F joined-image.png
. Semua gambar yang dipilih akan digabungkan sebagai satu png dalam urutan abjad
convert *.png +append out.png
Siapa pun yang menggunakan MiniMagick
permata rel dapat menggunakan alat bawaan untuk menggabungkan gambar:
# Replace this with the path to the images you want to combine
images = [
"image1.jpg",
"image2.jpg"
]
processed_image = MiniMagick::Tool::Montage.new do |image|
image.geometry "x700+0+0"
image.tile "#{images.size}x1"
images.each {|i| image << i}
image << "output.jpg"
end
Lihat dokumentasi untuk #geometry
opsi menangani pengubahan ukuran dan penempatan. Contoh saat ini akan mengubah ukuran gambar ke 700px
ketinggian dengan tetap mempertahankan rasio aspek gambar. +0+0
akan menempatkan gambar tanpa celah di antara keduanya.