Mesclar imagens lado a lado (horizontalmente)

98

Tenho cinco imagens de tamanhos: 600 x 30, 600 x 30, 600 x 30, 600 x 30, 810 x 30. Seus nomes são: 0.png, 1.png, 2.png, 3.png, 4.png, respectivamente.

Como faço para mesclá-los horizontalmente para fazer uma imagem de tamanho 3210x30 com ImageMagick?

Sasuke Kun
fonte

Respostas:

117

ImageMagick é fornecido com o montageutilitário. A montagem anexará cada imagem lado a lado, permitindo que você ajuste o espaçamento entre cada imagem ( -geometry) e o layout geral ( -tile).

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

Outros exemplos podem ser encontrados na página de uso de montagens

Emcconville
fonte
1
A documentação da montagem especifica que a sintaxe [0-5] é para linux, então eu acho que se você estiver no Windows, terá que digitar / gerar todos os nomes de arquivo. ie montagem 0.png 1.png 2.png 3.png 4.png ...
Dan
3
Você é o melhor! Procurei por isso minha vida inteira!
Robin
@ RodrigoGraça Veja o guia de Uso e Exemplos sobre como lidar com transparências + fundos.
emcconville
ele funciona para combinação de jpg e png também. obrigado
joydeep bhattacharjee
3
[0-5].pngirá produzir "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", seis arquivos diferentes, mas você pegará tile 5x1apenas cinco deles, deixando-o com dois arquivos de saída. Isso deve usar [0-4].pngou -tile 6x1.
R. Barrett
79

ImageMagick tem uma ferramenta de linha de comando chamada ' convert ' para mesclar imagens horizontalmente ou para outro propósito. Tentei este comando e funcionou perfeitamente no seu caso:
Para juntar imagens horizontalmente:
convert +append *.png out.png

Para empilhar imagens verticalmente:
convert -append *.png out.png

tesmojones
fonte
que pode ser adicionado a uma ação personalizada Thunar nesta forma (. ex para se juntar verticalmente = up-cidade): convert -append %F joined-image.png. Todas as imagens selecionadas serão unidas como um png em ordem alfabética
1
Se estiver usando ImageMagick 7+, você precisará colocar as imagens nas quais está trabalhando antes dos parâmetros:convert *.png +append out.png
Mazuhl
7

Muito simples com ImageMagick ( brew install imagemagick)

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

Qualquer pessoa que use a MiniMagickgema rails pode usar a ferramenta integrada para mesclar imagens:

# 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

Verifique a documentação para #geometryopções de redimensionamento e posicionamento. O exemplo atual irá redimensionar as imagens para uma 700pxaltura enquanto mantém a proporção da imagem. +0+0colocará a imagem sem lacunas entre eles.

Myk Klemme
fonte