web-dev-qa-db-fra.com

Coller des images de mosaïque à l'aide de la commande de montage d'imagemagick sans redimensionnement

Cela semble être une question assez courante, je vais donc la poser en utilisant autant de mots-clés que je peux en penser!

J'ai un tas de (bien, neuf) jpeg de tuiles, avec les noms de fichiers de tuiles standard. Chaque 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 pour "coller" ou pour les assembler afin de créer une seule image cohérente? Je ne veux pas les redimensionner du tout, donc je suppose que l'image finale devrait être 660x525.

Ce serait un montage sans encadrement, ombrage, bordure, etc. - juste les neuf images originales, collées ensemble pour former un seul jpeg.

Je sais que cela devrait aller dans ce sens, mais je me bats pour obtenir le bon ordre et le bon dimensionnement: 

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

Je cherchais à faire quelque chose de similaire et je me suis retrouvé ici (je suppose que votre méthode consistant à "autant de mots-clés que possible" a fonctionné). Voici ce que j'ai trouvé qui a fonctionné pour moi. (géométrie et carreaux adaptés à vos besoins)

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

Les fichiers sont ajoutés aux mosaïques horizontalement. Ainsi, pour -tile 4x2, la disposition serait la suivante:

1 2 3 4
5 6 7 8

Les nombres étant les positions relatives des noms de fichiers dans la liste d'arguments.

Autant que je sache, tile* se développera par ordre alphabétique. Vous devez donc spécifier vos noms de fichiers manuellement ou les renommer afin de les trier de manière appropriée, par exemple:

# 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
35
kch

La solution de Dave ne fonctionnait pas pour moi, alors j'ai trouvé une meilleure réponse ici . Essaye ça:

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)

26
BearCode

J'utilise personnellement cette commande minimale pour de telles tâches:

montage tile*.jpg -tile 3x3 -geometry +0+0 output.jpg

geometry +0+0 n’ajoutera aucune bordure et ne conservera pas la taille originale de chaque image (une option très conseillée). 

0
gluuke