44 votes

Coller des images de mosaïque en utilisant la commande de montage d'imagemagick

Cela semble comme il pourrait être raisonnable de la question, donc je vais demander l'aide d'autant de clés que je pense!

J'ai un tas de (bien, neuf) vignette jpeg, avec carreaux standard des noms de fichiers. Chaque image jpeg est 220x175 pixels:

(top row)
tile_1_0_0.jpg
tile_1_1_0.jpg
tile_1_2_0.jpg
(middle row)
tile_1_0_1.jpg
tile_1_1_1.jpg
tile_1_2_1.jpg
(bottom row)
tile_1_0_2.jpg
tile_1_1_2.jpg
tile_1_2_2.jpg

Comment puis-je utiliser imagemagick/montage de la "colle", ou de se joindre à eux tous ensemble pour faire une seule image cohérente? Je ne veux pas les redimensionner à tous, donc je suppose que l'image finale doit être 660x525.

Que serait un montage sans encadrement, les ombres, les riverains, etc. simplement les neuf images originales, collés ensemble pour faire une seule jpeg.

Je sais que ça doit être quelque chose le long de ces lignes, mais j'ai du mal avec l'obtention de l'ordre et du dimensionnement de la droite:

montage +frame +shadow +label -tile 3x3 -geometry <options> *.jpg joined.jpg

37voto

kch Points 25855

Je cherchais à faire quelque chose de similaire et fini ici (je suppose que ton "autant de mots clés que possible" chose travaillé). Voici ce que j'ai trouvé qui a fonctionné pour moi. (la géométrie et de la tuile ajusté à vos besoins)

montage -border 0 -geometry 660x -tile 3x3 tile* final.jpg

Les fichiers ajoutés à carreaux horizontalement, de sorte que, pour -tile 4x2, la disposition serait:

1 2 3 4
5 6 7 8

Que les chiffres soient les positions relatives des noms de fichiers dans la liste d'arguments.

Aussi loin que je peux dire, tile* permettra d'élargir l'ordre alphabétique, de sorte que vous devez spécifier vos noms de fichiers manuellement, ou de le renommer ensuite pour qu'il sorte de façon appropriée, par ex.:

# top row
tile_r0_c0.jpg
tile_r0_c1.jpg
tile_r0_c2.jpg
# middle row
tile_r1_c0.jpg
tile_r1_c1.jpg
tile_r1_c2.jpg
# bottom row
tile_r2_c0.jpg
tile_r2_c1.jpg
tile_r2_c2.jpg

29voto

Bear Bear Points 395

La solution de Dave n'a pas fonctionné pour moi alors j'ai trouvé une meilleure réponse ici (j'espère que le lien est autorisé)

 montage -mode concatenate -tile 3x3 tile*.jpg result.jpg
 

cela fonctionne aussi sans le deuxième "3"

 montage -mode concatenate -tile 3x tile*.jpg result.jpg
 

la ligne complète pour les utilisateurs Windows est:

 "C:\Program Files\ImageMagick-6.8.0-Q16\montage.exe" -mode concatenate -tile 3x tile*.jpg result.jpg
 

(changez le "6.8.0-Q16" avec votre propre version d'ImageMagick, bien sûr)

0voto

Papou Points 21

Avec Linux, je peux dessiner n’importe quel rectangle dans un plus grand ensemble de tuiles:

 montage tile_r{3..5}_c{1..3}.jpg -geometry +0+0 -tile 3x3  result.jpg
tile_r3_c1.jpg tile_r3_c2.jpg tile_r3_c3.jpg 
tile_r4_c1.jpg tile_r4_c2.jpg tile_r4_c3.jpg 
tile_r5_c1.jpg tile_r5_c2.jpg tile_r5_c3.jpg
 

Mais j'ai un cas où le nom du fichier est tile_cx_rx.jpg Quelqu'un sait-il quelle commande bash incrémentera le deuxième x, puis le premier? Ou échanger les numéros dans le nom de fichier?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X