Scal obrazy obok siebie (w poziomie)

99

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?

Sasuke Kun
źródło

Odpowiedzi:

117

ImageMagick jest dostarczany z montagenarzę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

emcconville
źródło
1
Dokumentacja montażu określa, że ​​składnia [0-5] jest przeznaczona dla Linuksa, więc myślę, że jeśli pracujesz w systemie Windows, musisz wpisać / wygenerować wszystkie nazwy plików. ie montaż 0.png 1.png 2.png 3.png 4.png ...
Dan
3
Jesteście najlepsi! Szukałem tego przez całe życie!
Robin
@ RodrigoGraça Zobacz przewodnik dotyczący stosowania i przykładów dotyczący obsługi przezroczystości i tła.
emcconville
działa również dla kombinacji jpg i png. dzięki
joydeep bhattacharjee
3
[0-5].pngutworzy sześć różnych plików "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", ale tile 5x1weźmiesz tylko pięć z nich, pozostawiając dwa pliki wyjściowe. Powinno to użyć [0-4].pnglub -tile 6x1.
R. Barrett
80

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

tesmojones
źródło
które mogą być dodawane do akcji niestandardowej Thunara w tej formie (. ex dołączyć pionowo = up-miasto) convert -append %F joined-image.png. Wszystkie wybrane obrazy zostaną połączone w jeden
1
Jeśli używasz ImageMagick 7+, musisz umieścić obrazy, nad którymi pracujesz, przed parametrami:convert *.png +append out.png
Mazuhl,
8

Bardzo proste dzięki ImageMagick ( brew install imagemagick)

convert +append image_1.png image_2.png new_image_conbined.png
Thiago
źródło
0

Każdy, kto używa MiniMagickklejnotu 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ą #geometryopcji obsługi zmiany rozmiaru i umieszczania. Bieżący przykład zmieni rozmiar obrazów do 700pxwysokości przy zachowaniu współczynnika proporcji obrazu. +0+0umieści obraz bez przerw między nimi.

Myk Klemme
źródło
0

A jeśli obrazy nie mają tej samej wysokości i chcesz to naprawić na wszystkich, możesz dodać -resizenp. Aby naprawić wysokość 400 pikseli:

convert +append image_1.png image_2.png -resize x400 new_image_conbined.png
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
źródło