Fusionar imágenes una al lado de la otra (horizontalmente)

98

Tengo cinco imágenes de tamaños: 600x30, 600x30, 600x30, 600x30, 810x30. Sus nombres son: 0.png, 1.png, 2.png, 3.png, 4.png, respectivamente.

¿Cómo los fusiono horizontalmente para hacer una imagen de tamaño 3210x30 con ImageMagick?

Sasuke Kun
fuente

Respuestas:

117

ImageMagick se envía con la montageutilidad. El montaje agregará cada imagen una al lado de la otra, lo que le permitirá ajustar el espacio entre cada imagen ( -geometry) y el diseño general ( -tile).

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

Se pueden encontrar otros ejemplos en la página de uso de montaje

Emcconville
fuente
1
La documentación de montaje especifica que la sintaxis [0-5] es para linux, así que supongo que si estás en Windows tienes que escribir / generar todos los nombres de archivo. ie montage 0.png 1.png 2.png 3.png 4.png ...
Dan
3
¡Eress el mejor! ¡He buscado esto toda mi vida!
Robin
@ RodrigoGraça Consulte la guía de Uso y ejemplos sobre el manejo de transparencia + fondos.
emcconville
también funciona para la combinación de jpg y png. gracias
joydeep bhattacharjee
3
[0-5].pngproducirá "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", seis archivos diferentes, pero tile 5x1solo tomará cinco de ellos, dejándolo con dos archivos de salida. Esto debería usar [0-4].pngo -tile 6x1.
R. Barrett
79

ImageMagick tiene una herramienta de línea de comandos llamada ' convertir ' para fusionar imágenes horizontalmente o para otro propósito. Probé este comando y funcionó perfectamente en su caso:
Para unir imágenes horizontalmente:
convert +append *.png out.png

Para apilar imágenes verticalmente:
convert -append *.png out.png

tesmojones
fuente
que se puede agregar a una acción propia Thunar en esta forma (Ej. para unirse verticalmente = hasta la ciudad): convert -append %F joined-image.png. Todas las imágenes seleccionadas se unirán como un png en orden alfabético
1
Si usa ImageMagick 7+, deberá poner las imágenes en las que está trabajando antes de los parámetros:convert *.png +append out.png
Mazuhl
7

Muy simple con ImageMagick ( brew install imagemagick)

convert +append image_1.png image_2.png new_image_conbined.png
Thiago
fuente
0

Cualquiera que use la MiniMagickgema de rieles puede usar la herramienta incorporada para fusionar imágenes:

# 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

Consulte la documentación para conocer las #geometryopciones para manejar el cambio de tamaño y la ubicación. El ejemplo actual cambiará el tamaño de las imágenes a una 700pxaltura mientras se mantiene la relación de aspecto de la imagen. +0+0colocará la imagen sin espacios entre ellos.

Myk Klemme
fuente