Unisci immagini affiancate (orizzontalmente)


98

Ho cinque immagini di dimensioni: 600 x 30, 600 x 30, 600 x 30, 600 x 30, 810 x 30. I loro nomi sono: 0.png, 1.png, 2.png, 3.png, 4.png, rispettivamente.

Come faccio a unirli orizzontalmente per creare un'immagine di dimensioni 3210x30 con ImageMagick?

Risposte:


117

ImageMagick viene fornito con l' montageutilità. Montage aggiungerà ciascuna immagine una accanto all'altra, consentendo di regolare la spaziatura tra ciascuna immagine ( -geometry) e il layout generale ( -tile).

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

Altri esempi possono essere trovati nella pagina Uso del montaggio


1
la documentazione del montaggio specifica che la sintassi [0-5] è per Linux, quindi immagino che se sei su Windows devi digitare / generare tutti i nomi dei file. ie montaggio 0.png 1.png 2.png 3.png 4.png ...
Dan

3
Sei il migliore! L'ho cercato per tutta la vita!
Robin

@ RodrigoGraça Vedi la guida Uso ed esempi sulla gestione della trasparenza + sfondi.
emcconville

funziona anche per la combinazione di jpg e png. grazie
joydeep bhattacharjee

3
[0-5].pngprodurrà "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", sei file diversi, ma tile 5x1ne prenderai solo cinque, lasciandoti con due file di output. Questo dovrebbe usare [0-4].pngo -tile 6x1.
R. Barrett

79

ImageMagick ha uno strumento da riga di comando chiamato " convert " per unire le immagini orizzontalmente o per altri scopi. Ho provato questo comando e ho funzionato perfettamente sul tuo caso:
Per unire le immagini orizzontalmente:
convert +append *.png out.png

Per impilare le immagini verticalmente:
convert -append *.png out.png


che può essere aggiunto ad un'azione personalizzata Thunar in questa forma (Es. di unirsi in verticale = up-town): convert -append %F joined-image.png. Tutte le immagini selezionate verranno unite come un unico png in ordine alfabetico

1
Se usi ImageMagick 7+ dovrai mettere le immagini su cui stai lavorando prima dei parametri:convert *.png +append out.png
Mazuhl

7

Molto semplice con ImageMagick ( brew install imagemagick)

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

0

Chiunque utilizzi la MiniMagickgemma di rails può utilizzare lo strumento integrato per unire le immagini:

# 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

Consulta la documentazione per le #geometryopzioni per gestire il ridimensionamento e il posizionamento. L'esempio corrente ridimensionerà le immagini a 700pxun'altezza mantenendo le proporzioni dell'immagine. +0+0posizionerà l'immagine senza spazi tra di loro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.