it-roy-ru.com

Объединить изображения бок о бок (по горизонтали)

У меня есть пять изображений размеров: 600x30, 600x30, 600x30, 600x30, 810x30. Их имена: 0.png, 1.png, 2.png, 3.png, 4.png, соответственно.

Как объединить их по горизонтали, чтобы получить изображение размером 3210x30 с ImageMagick?

72
Sasuke Kun

ImageMagick поставляется с утилитой montage. Montage добавит каждое изображение рядом, что позволит вам настроить расстояние между каждым изображением (-geometry) и общим макетом (-tile). 

montage [0-5].png -tile 5x1 -geometry +0+0 out.png

Другие примеры можно найти на Использование монтажа страница

84
emcconville

ImageMagick имеет инструмент командной строки с именем ' convert ' для объединения изображений по горизонтали или для других целей. я попробовал эту команду и отлично работаю над вашим делом:
Для объединения изображений по горизонтали:
convert +append *.png out.png

Чтобы расположить изображения вертикально:
convert -append *.png out.png

63
tesmojones

Очень просто с ImageMagick (brew install imagemagick)

convert +append image_1.png image_2.png new_image_conbined.png
2
Joolah

Любой, кто использует гем MiniMagick Rails, может использовать встроенный инструмент для объединения изображений:

# 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

Проверьте документация для параметров #geometry для обработки изменения размера и размещения. Текущий пример изменит размеры изображения до высоты 700px, сохраняя соотношение сторон изображения. +0+0 поместит изображение без пробелов между ними.

0
Myk Klemme