Mam pięć zdjęć o rozmiarach: 600x30, 600x30, 600x30, 600x30, 810x30. Ich nazwy to odpowiednio: 0.png, 1.png, 2.png, 3.png, 4.png.
Jak połączyć je w poziomie, aby za pomocą programu ImageMagick utworzyć obraz o rozmiarze 3210x30?
Mam pięć zdjęć o rozmiarach: 600x30, 600x30, 600x30, 600x30, 810x30. Ich nazwy to odpowiednio: 0.png, 1.png, 2.png, 3.png, 4.png.
Jak połączyć je w poziomie, aby za pomocą programu ImageMagick utworzyć obraz o rozmiarze 3210x30?
Odpowiedzi:
ImageMagick jest dostarczany z montage
narzędziem. Montaż doda każdy obraz obok siebie, umożliwiając dostosowanie odstępów między każdym obrazem ( -geometry
) i ogólnym układem ( -tile
).
montage [0-5].png -tile 5x1 -geometry +0+0 out.png
Inne przykłady można znaleźć na stronie Montage Usage
[0-5].png
utworzy sześć różnych plików "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", ale tile 5x1
weźmiesz tylko pięć z nich, pozostawiając dwa pliki wyjściowe. Powinno to użyć [0-4].png
lub -tile 6x1
.
ImageMagick ma narzędzie wiersza poleceń o nazwie „ konwertuj ” do łączenia obrazów w poziomie lub w innym celu. Wypróbowałem to polecenie i działam idealnie w twoim przypadku:
Aby połączyć obrazy w poziomie:
convert +append *.png out.png
Aby ułożyć obrazy w pionie:
convert -append *.png out.png
convert -append %F joined-image.png
. Wszystkie wybrane obrazy zostaną połączone w jeden
convert *.png +append out.png
Każdy, kto używa MiniMagick
klejnotu szyn, może użyć wbudowanego narzędzia do scalania obrazów:
# 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
Zapoznaj się z dokumentacją dotyczącą #geometry
opcji obsługi zmiany rozmiaru i umieszczania. Bieżący przykład zmieni rozmiar obrazów do 700px
wysokości przy zachowaniu współczynnika proporcji obrazu. +0+0
umieści obraz bez przerw między nimi.
A jeśli obrazy nie mają tej samej wysokości i chcesz to naprawić na wszystkich, możesz dodać -resize
np. Aby naprawić wysokość 400 pikseli:
convert +append image_1.png image_2.png -resize x400 new_image_conbined.png