Exemples ImageMagick -- Montage, Tableaux d'images
- Géométrie - Taille de tuile (Redimensionnement d'image)
- Géométrie - Espacement des tuiles
- Contrôles de disposition des tuiles
- Décoration par cadre
- Décoration par bordure
- Décoration par ombre
- Étiqueter les images du montage
- Utiliser les métadonnées d'image enregistrées
- Réglages de contrôle du montage
- Réutiliser les réglages pour la lecture/création d'images
-
Cartes d'images miniatures HTML (carte d'index de base)
- Cartes d'index HTML plus petites, avec images JPEG
- Index visuel (Une solution sans montage)
-
Un montage de photos Polaroid (une carte d'index élégante)
- Tuiles de montage superposées
- Mode de concaténation de montage
- Géométrie zéro (prudence requise)
- Gestion de l'arrière-plan et de la transparence
L'usage originel de « magick montage » est de générer des tables de vignettes d'images, c'est-à-dire de référencer les vignettes de grandes collections d'images, en particulier des photos. Et même s'il peut toujours servir à cela, il peut aussi faire beaucoup plus. Cette page examine ce que vous pouvez faire avec montage, et comment vous pouvez l'utiliser sur vos propres images.
Montage, Introduction
La commande « [magick montage](https://imagemagick.org/www/montage.html) » est conçue pour produire un tableau de vignettes. Un peu comme une planche-contact d'une grande collection d'images. Le « [magick montage](https://imagemagick.org/www/montage.html) » par défaut, sans options, est très ordinaire, avec des carrés de contenance assez grands, sans cadre, ni étiquettes, ni ombres.
magick montage balloon.gif medical.gif present.gif shading.gif montage.jpg
Géométrie - Taille de tuile et redimensionnement d'image
Le réglage « [-geometry](https://imagemagick.org/command-line-options/#geometry) » est le contrôle le plus important de « magick montage ». Il définit la taille des vignettes individuelles, et l'espacement entre elles. La partie taille de la géométrie est utilisée comme argument de l'Opérateur de redimensionnement, y compris tous ses indicateurs spéciaux. La partie position de l'option est interprétée comme la quantité d'espace de bordure à laisser autour de l'image, donc en la réduisant, vous réduirez les espaces entre les images. Le réglage « [-geometry](https://imagemagick.org/command-line-options/#geometry) » par défaut est « 120x120>+4+3 », ce qui signifie d'ajuster toute image donnée dans une boîte de 120x120 pixels. Si l'image est plus grande, réduisez-la, mais ne redimensionnez pas les images plus petites (selon l'indicateur « ne réduire que les plus grandes » ('>'). La taille de la « tuile » est alors fixée aux plus grandes dimensions de toutes les images redimensionnées, et de la taille réellement spécifiée. Cela signifie que vous n'obtiendrez jamais une taille de tuile inférieure à la taille « [-geometry](https://imagemagick.org/command-line-options/#geometry) » spécifiée. Vous pouvez supprimer la taille énorme des tuiles dans l'exemple précédent en modifiant la valeur par défaut de « [-geometry](https://imagemagick.org/command-line-options/#geometry) ». Par exemple, en supprimant la composante « taille », aucune des images ne sera redimensionnée, et la taille de la « tuile » sera fixée aux plus grandes dimensions de toutes les images données. Par exemple, ici je demande à montage de disposer les tuiles en utilisant la plus grande image donnée avec un petit espace entre les tuiles. C'est un réglage très typique à utiliser lorsque toutes les images d'entrée sont petites et à peu près de même taille.
magick montage balloon.gif medical.gif present.gif shading.gif \
-geometry +2+2 montage_geom.jpg
Par exemple, ici j'ai remplacé une image par une image « logo » plus grande, mais j'ai fixé le réglage de redimensionnement à « 48x48 » pour redimensionner à la fois les images plus petites et plus grandes.
magick montage balloon.gif medical.gif present.gif logo: \
-geometry 48x48+2+2 montage_geom_size.jpg
Et ici, je restreins à nouveau le redimensionnement aux seules images plus grandes que la taille de tuile spécifiée.
magick montage balloon.gif medical.gif present.gif logo: \
-geometry 48x48\>+2+2 montage_geom_larger.jpg
Comme vous pouvez le voir, l'espacement entre les images semble plus grand que l'espacement de 2 pixels demandé. Mais ce n'est pas le cas. Les tuiles sont toujours séparées de 2 pixels, mais les images elles-mêmes ne remplissent pas la taille de tuile de 48x48 demandée. L'image « logo » a quand même été redimensionnée pour s'ajuster dans la tuile de 48x48 pixels. Si vous ne voulez aucun redimensionnement, alors ne définissez que l'espacement entre les tuiles. Alternativement, utilisez une taille spéciale telle que « 1x1< » qui indique à IM de ne redimensionner que les images plus petites à la taille donnée. Comme aucune image ne peut être plus petite que 1 pixel, aucune image ne sera redimensionnée. La taille de tuile sera ainsi à nouveau la plus grande dimension de toutes les images de la page. Voir Géométrie zéro, prudence requise pour les raisons pour lesquelles vous pourriez vouloir faire cela.
Géométrie - Espacement des tuiles
La partie positionnelle du réglage « [-geometry](https://imagemagick.org/command-line-options/#geometry) » ajoutera de l'espace entre les « tuiles » individuelles, en ajoutant une Bordure de ces dimensions autour des tuiles avant de les Assembler. Cela signifie que pour le réglage « [-geometry](https://imagemagick.org/command-line-options/#geometry) » par défaut, de « +4+3 », les tuiles seront espacées des bords gauche et droit de l'image finale de 4 pixels, et auront un espacement horizontal de 8 pixels (deux fois la taille donnée) entre les tuiles. Il en va de même pour l'espacement vertical. Notez comment l'espace entre les tuiles lorsque toutes les images ont été redimensionnées (avant-dernier exemple) est deux fois plus grand que l'espace autour des bords.
Contrôles de disposition des tuiles
L'option suivante la plus importante de « magick montage » est le réglage « [-tile](https://imagemagick.org/command-line-options/#tile) ». Cela indique à montage les limites que vous voulez sur la façon dont les images en tuiles doivent être disposées dans le résultat final. Dans ImageMagick version 6, « magick montage » fera une estimation éclairée de la meilleure façon de disposer en tuiles un nombre donné d'images, lorsque vous ne fournissez aucune indication « [-tile](https://imagemagick.org/command-line-options/#tile) ». Il suppose cependant que les images mises en tuiles sont à peu près carrées, car il ne regarde pas le rapport d'aspect des images lors du choix de la disposition à utiliser.
magick montage font_1.gif -geometry 16x16+1+1 tile_1.gif
magick montage font_[12].gif -geometry 16x16+1+1 tile_2.gif
magick montage font_[123].gif -geometry 16x16+1+1 tile_3.gif
magick montage font_[1-4].gif -geometry 16x16+1+1 tile_4.gif
magick montage font_[1-5].gif -geometry 16x16+1+1 tile_5.gif
magick montage font_[1-6].gif -geometry 16x16+1+1 tile_6.gif
magick montage font_[1-7].gif -geometry 16x16+1+1 tile_7.gif
magick montage font_[1-8].gif -geometry 16x16+1+1 tile_8.gif
magick montage font_[1-9].gif -geometry 16x16+1+1 tile_9.gif
magick montage font_[0-9].gif -geometry 16x16+1+1 tile_0.gif
| L'étrange syntaxe « [1-5] » est un raccourci du shell UNIX, qui est développé en une liste de noms de fichiers. La commande « magick montage » elle-même ne voit pas ces caractères, juste la liste de fichiers résultante.
---|---
ImageMagick est plutôt bon pour déterminer le bon réglage « [-tile](https://imagemagick.org/command-line-options/#tile) » à utiliser pour un nombre donné d'images d'entrée. Voici un tableau du nombre d'images d'entrée et du réglage de tuile qu'IM utilisera pour disposer ces images. | Nb d'images | Réglage de tuile
---|---
1 | 1x1
2 | 2x1
3 | 3x1
4 | 2x2
5 - 6 | 3x2
7 - 8 | 4x2
| | Nb d'images | Réglage de tuile
---|---
9 | 3x3
10 - 12 | 4x3
13 - 15 | 5x3
16 - 20 | 5x4
21 - 24 | 6x4
25 | 5x5
| | Nb d'images | Réglage de tuile
---|---
26 - 30 | 6x5
31 - 36 | 7x5
31 - 35 | 7x5
36 | 6x6
37 - 42 | 7x6
43 - 48 | 8x6
Notez cependant qu'IM ne sélectionnera pas automatiquement un réglage de tuile « parfaitement ajusté » de 6x3 pour 18 images, ni un réglage 7x4 pour 28 images. Cependant, si vous spécifiez un réglage « [-tile](https://imagemagick.org/command-line-options/#tile) » précis, montage créera toujours une image assez grande pour contenir ce nombre de « tuiles ».
magick montage font_[1-7].gif -tile 9x1 -geometry 16x16+1+1 tile_9x1.gif
magick montage font_[1-7].gif -tile 4x3 -geometry 16x16+1+1 tile_4x3.gif
magick montage font_[1-7].gif -tile 3x3 -geometry 16x16+1+1 tile_3x3.gif
magick montage font_1.gif -tile 2x3 -geometry 16x16+1+1 tile_2x3.gif
| Comme vous pouvez le voir, montage a créé une image assez grande pour contenir le nombre de tuiles spécifié, quel que soit le nombre d'images disponibles pour remplir l'espace de tuiles demandé, qu'il s'agisse de 7 images ou d'une seule image. Il ne remplira l'espace que ligne par ligne ; aucune option n'est actuellement fournie pour effectuer un remplissage colonne par colonne de l'espace de tuiles. | Avant IM v6.1, montage tronquait automatiquement l'espace supplémentaire si le nombre d'images n'utilisait pas cet espace. Ainsi, un réglage tel que la première image « 9x1 » aurait été tronqué pour produire une image de tuiles « 7x1 ». De ce fait, les anciens utilisateurs de montage utilisaient souvent de grands nombres tels que « 999x1 » pour générer une seule rangée d'images. Maintenant, un tel argument produira une image très longue, et pourrait prendre beaucoup de temps à IM pour s'achever. Par conséquent... Évitez l'utilisation de très grands nombres de tuiles dans IM montage ! |
|---|---|
Vous pouvez éviter les problèmes d'espace supplémentaire et d'images multiples, en particulier pour un nombre inconnu d'images d'entrée, en supprimant soit le nombre de lignes, soit le nombre de colonnes du réglage « [-tile](https://imagemagick.org/command-line-options/#tile) ». Le nombre manquant sera considéré par montage comme étant variable, et montage ne créera que suffisamment d'espace de tuiles pour contenir TOUTES les images d'entrée, ne produisant qu'une seule image, jamais plusieurs images. |
magick montage font_[1-7].gif -tile x1 -geometry 16x16+1+1 tile_x1.gif
magick montage font_[1-7].gif -tile x2 -geometry 16x16+1+1 tile_x2.gif
magick montage font_[1-7].gif -tile x4 -geometry 16x16+1+1 tile_x4.gif
magick montage font_[1-7].gif -tile 4x -geometry 16x16+1+1 tile_4x.gif
magick montage font_[1-7].gif -tile 5x -geometry 16x16+1+1 tile_5x.gif
magick montage font_[1-7].gif -tile 9x -geometry 16x16+1+1 tile_9x.gif
C'est l'utilisation la plus typique du réglage « [-tile](https://imagemagick.org/command-line-options/#tile) », car elle garantit que le montage est correctement dimensionné, tout en lui laissant un certain contrôle sur la détermination de la taille finale du tableau. Notez la dernière image, ci-dessus, où nous avons demandé 9 colonnes d'images. IM a tout de même généré les 9 colonnes demandées, même si moins de 9 images ont été fournies. En revanche, la première image (une rangée demandée) a exactement la bonne longueur pour contenir toutes les images. Si vous avez plus d'images d'entrée que montage ne peut en disposer dans l'espace donné par un réglage « [-tile](https://imagemagick.org/command-line-options/#tile) », alors plusieurs images peuvent être générées par montage, ce qui aboutit soit à l'ajout de numéros de séquence d'images au nom de fichier, soit à la création d'une sorte d'animation GIF. Voir Écrire des images multiples pour les détails. Par exemple, ici j'ai demandé à montage d'enregistrer des images séparées pour chaque page générée, en fournissant un « %d » pour le numéro de cadre/scène/page de chaque nom de fichier d'image.
magick montage font_*.gif -tile 4x1 -geometry +2+2 multi_%d.gif
Décoration par cadre
Le meilleur aspect de l'utilisation de montage pour disposer des images, c'est qu'il fournit beaucoup de contrôles supplémentaires pour ajouter des « fioritures » supplémentaires autour de chaque image. Par exemple, vous pouvez mieux délimiter les images affichées en ajoutant un « [-frame](https://imagemagick.org/command-line-options/#frame) » autour de chaque image.
magick montage balloon.gif medical.gif present.gif shading.gif \
-tile x1 -frame 5 -geometry +5+5 frame.jpg
Ce n'est pas comme l'option du même nom dans « magick » (voir l'exemple Ajouter un cadre 3D). L'option de cadre de montage déterminera automatiquement des valeurs par défaut pour le biseau interne et externe du cadre. Ainsi, un seul nombre en argument est nécessaire.
Décoration par bordure
Vers IM v6.1.0, « -border » est devenue une nouvelle option décorative de montage. Elle ajoute désormais une « marge » supplémentaire autour de chaque image, après que celle-ci a été redimensionnée selon le réglage « -geometry ».
magick montage balloon.gif medical.gif present.gif shading.gif \
-tile x1 -border 5 -geometry +5+5 border.jpg
| La décoration « -border » ne fonctionne actuellement pas lorsque la Décoration par cadre est également appliquée.
---|---
| Avant IM v6.1.0 (environ)-border aurait été appliquée aux images à l'endroit où elle apparaissait dans la ligne de commande « magick montage », exactement comme elle l'aurait été avec « magick ».
C'est-à-dire que la bordure aurait ainsi été ajoutée à l'image bien avant que les images ne soient redimensionnées (selon « -geometry »), ce qui résultait en des largeurs de bordure différentes autour de chaque image selon la taille de l'image à ce moment-là. C'est pour supprimer cette incohérence que -border est devenu un réglage spécial de montage.
---|---
Décoration par ombre
Ajouter une ombre avec le cadre est aussi plutôt réussi.
magick montage balloon.gif medical.gif present.gif shading.gif \
-tile x1 -frame 5 -shadow -geometry +5+5 frame_shadow.jpg
Bien sûr, vous n'avez pas réellement besoin d'un cadre pour générer des ombres d'image
magick montage balloon.gif medical.gif present.gif shading.gif \
-tile x1 -shadow -geometry +5+5 -background lightblue \
shadow_noframe.jpg
Depuis IM v6.3.1, lorsque les « ombres douces » ont été implémentées, les ombres seront désormais façonnées selon la transparence des images affichées ! |
magick montage font_1.gif font_7.gif font_2.gif font_0.gif \
-tile x1 -shadow -geometry +3+5 -background none \
shadow_shaped.png
![[Sortie IM]](../static/img/montage/shadow_shaped.png)
Comme vous pouvez le voir, l'ombre utilisée par montage est en fait une couleur semi-transparente, permettant à l'arrière-plan d'affecter sa couleur finale. Cela signifie que si vous créez un montage avec un arrière-plan texturé, ou utilisez un arrière-plan transparent et le superposez, l'ombre fera ce qu'il faut. Bien sûr, vous devez utiliser un format d'image qui peut gérer les couleurs semi-transparentes, comme PNG. Rappelez-vous qu'en raison de la Transparence booléenne GIF, vous ne pouvez pas utiliser le format de fichier image GIF à cette fin. Notez que les ombres ne tiennent pas compte de l'espacement « -geometry » entre les images. Ainsi, si les images sont trop proches les unes des autres, l'ombre des images précédentes peut être masquée par les images suivantes. Par exemple...
magick montage balloon.gif medical.gif present.gif shading.gif \
-tile x1 -shadow -geometry +1+1 -background none \
shadow_spacing.png
Il est donc recommandé de fournir une quantité raisonnable d'espacement « -geometry » lors de l'utilisation d'une ombre. Pour éviter de trop « rogner les bords » des ombres, l'option « -shadow » ajoutera 4 pixels d'espacement de bord supplémentaires aux bords droit et inférieur de l'image finale. Cela s'ajoute à l'espacement « -geometry » normal fourni. Cependant, comme vous pouvez le voir ci-dessus, ce n'est pas toujours suffisant comme espace. Montage ne fournit actuellement aucun contrôle pour le décalage, la couleur ou la « douceur » de l'ombre générée (pas encore du moins), mais d'un autre côté, vous n'aviez pas ce contrôle avec l'ombre rectangulaire dure fournie par les versions plus anciennes de montage.
Étiqueter les images du montage
Vous pouvez aussi demander à montage d'étiqueter l'image avec leurs noms de fichiers source, bien que vous deviez probablement redimensionner les cadres d'image, sinon les étiquettes pourraient ne pas tenir, tronquant le texte de l'étiquette. Dans ce cas, nous avons ajouté un « 60x60> » à la chaîne de géométrie, ce qui indique à IM de réduire les images plus grandes pour les ajuster dans cet espace, mais de ne pas agrandir les images si elles sont plus petites. C'est probablement l'utilisation la plus typique de montage.
magick montage -label '%f' balloon.gif medical.gif rose: present.gif shading.gif \
-tile x1 -frame 5 -geometry '60x60+4+4>' label_fname.jpg
Le « %f » est un caractère de format spécial, qui peut extraire divers détails sur les images en mémoire. Voir Échappements de propriétés d'image pour les détails sur les autres informations que vous pouvez extraire des images. Vous n'avez pas à utiliser un « [-frame](https://imagemagick.org/command-line-options/#frame) » lors de l'étiquetage des vignettes. Les étiquettes ne sont pas ombrées, afin qu'elles restent clairement lisibles.
montage -label '%f' balloon.gif medical.gif logo: present.gif shading.gif \
-tile x1 -shadow -geometry '60x60+2+2>' label_shadow.jpg
Et depuis IM v 6.2.1, vous pouvez désormais ré-étiqueter les images après leur lecture en utilisant l'opérateur d'attribut d'image « [-set](https://imagemagick.org/command-line-options/#set) ». Utilisons l'opérateur « [-set](https://imagemagick.org/command-line-options/#set) » pour ajouter plus d'informations sur les images. Et aussi quelques réglages de montage supplémentaires...
magick montage balloon.gif medical.gif logo: present.gif shading.gif \
-tile x1 -geometry '90x32+2+2>' -pointsize 10 \
-set label '%f\n%wx%h' -background SkyBlue label_fname3.jpg
Comme nous l'avons montré dans les exemples ci-dessus, vous pouvez utiliser le réglage « [-label](https://imagemagick.org/command-line-options/#label) » pour définir l'étiquette par défaut d'une image, au fur et à mesure de leur lecture, ou vous pouvez ré-étiqueter l'image par la suite en utilisant l'opérateur « [-set](https://imagemagick.org/command-line-options/#set) ». |
Notez que « %wx%h donne la largeur et la hauteur actuelles en pixels de l'image telle qu'elle est en mémoire. Si la taille de l'image a été modifiée, par exemple lors de l'entrée, cela peut être différent de la taille des images sur disque (ou de création). Utilisez plutôt « %[width]x%[height] » si vous voulez sa taille en pixels en mémoire. |
|---|---|
Vous pouvez aussi étiqueter les images différemment en définissant l'étiquette d'images individuelles. L'une ou l'autre option peut être utilisée, bien que vous deviez utiliser des parenthèses pour limiter à quelles images l'opérateur « [-set](https://imagemagick.org/command-line-options/#set) » sera appliqué. Ici, par exemple, nous utilisons les deux formes d'étiquetage. Mais ajoutons aussi un titre au montage, simplement parce que nous le pouvons... |
magick montage -label Balloon balloon.gif \
-label Medical medical.gif \
\( present.gif -set label Present \) \
\( shading.gif -set label Shading \) \
-tile x1 -frame 5 -geometry '60x60+2+2>' \
-title 'My Images' titled.jpg
Vous pouvez désactiver l'étiquetage d'image pour la ou les images suivantes en utilisant un « -label '' » ou « +label ». Cependant, comme vous le verrez plus loin, ces deux réglages ne sont pas tout à fait identiques. Il en va de même pour une opération « [-set](https://imagemagick.org/command-line-options/#set) » d'étiquette après lecture.
magick montage balloon.gif \
-label 'My Image' medical.gif \
+label present.gif \
-label ' ' shading.gif \
-tile x1 -frame 5 -geometry '60x60+2+2>' labeling.jpg
La dernière image montre comment, en utilisant un espace comme étiquette d'image, vous pouvez créer un espace d'étiquette d'image, mais le laisser vide. Cela présente une bonne règle empirique lors de l'utilisation de montage...
Soit étiquetez toutes vos images, soit aucune d'entre elles !
Vous n'avez pas à étiqueter vos images pendant l'opération de montage elle-même. Les formats MIFF et PNG peuvent tous deux stocker une étiquette dans le cadre de leur format d'image. Montage étiquettera automatiquement toute image lue qui contient déjà une étiquette. C'est automatique et n'a pas besoin d'être spécifié, et j'ai utilisé cette technique pour générer des montages d'images très complexes. Par exemple, le tableau de montage dans Exemples d'angle d'annotation a été créé en utilisant cette technique. Si vous ne voulez pas cet étiquetage automatique, vous devez spécifiquement indiquer à montage de réinitialiser toutes les étiquettes lues ou créées à la chaîne vide, en utilisant « -label '' » avant de lire l'image. Ou vous pouvez simplement supprimer les métadonnées d'étiquette en utilisant « +set label » après avoir lu les images. C'est là que « [+label](https://imagemagick.org/command-line-options/#label) » diffère de l'utilisation d'une étiquette vide (« -label '' »). Le premier réinitialisera le comportement par défaut pour réutiliser automatiquement toutes les métadonnées d'étiquette que l'image lue pourrait avoir, tandis que le second remplace l'étiquette par une chaîne vide, ce qui supprime effectivement l'étiquette. Vous pouvez aussi préserver l'étiquette originale de l'image en utilisant « -label '%l' », ce qui peut être utile comme option d'étiquetage NO-OP dans les scripts de traitement d'images. Notez que « [-set](https://imagemagick.org/command-line-options/#set) » ne peut pas restaurer l'étiquette originale d'une image, une fois qu'elle a été modifiée ou supprimée, que ce soit en utilisant « [-label](https://imagemagick.org/command-line-options/#label) » ou « [-set](https://imagemagick.org/command-line-options/#set) »
magick -label 'medical' medical.gif label_medical.png
magick -label 'logo' logo: label_logo.png
magick -label 'rose' rose: label_rose.png
magick montage label_medical.png \
-label '' label_logo.png \
+label label_rose.png \
-tile x1 -frame 5 -geometry '60x60+2+2>' label_control.jpg
Ci-dessus, vous pouvez voir que la première image a été étiquetée en utilisant l'étiquette fournie avec l'image elle-même. La deuxième a vu son étiquette entrante supprimée par un réglage « -label '' », tandis que la troisième a aussi utilisé l'étiquette de l'image parce que nous avons désactivé le réglage d'étiquette avec « [+label](https://imagemagick.org/command-line-options/#label) ».
Utiliser les métadonnées d'image enregistrées
Lors de la génération d'images destinées à être utilisées ultérieurement par montage, il est important de savoir quel type de métadonnées d'image un format de fichier image spécifique peut enregistrer. Par exemple, seuls les formats de fichier image PNG et MIFF peuvent réellement stocker des métadonnées « label » dans leur format de fichier image enregistré...
magick -label 'GIF' balloon.gif label.gif
magick -label 'JPG' medical.gif label.jpg
magick -label 'PNG' present.gif label.png
magick -label 'MIFF' shading.gif label.miff
montage label.gif label.jpg label.png label.miff \
-tile x1 -frame 5 -geometry '60x60+2+2>' label_files.jpg
rm label.*
Cependant, tous les formats de fichier courants vous permettent d'utiliser des métadonnées « comment », que vous pouvez utiliser en spécifiant un argument « %c » à « [-label](https://imagemagick.org/command-line-options/#label) ».
magick -comment 'GIF' balloon.gif comment.gif
magick -comment 'JPG' medical.gif comment.jpg
magick -comment 'PNG' present.gif comment.png
magick -comment 'MIFF' shading.gif comment.miff
magick montage -label '%c' comment.gif comment.jpg comment.png comment.miff \
-tile x1 -frame 5 -geometry '60x60+2+2>' comment_files.jpg
rm comment.*
C'est souvent plus utile pour les photos enregistrées au format de fichier JPEG, bien que les commentaires d'image JPEG soient généralement trop longs (souvent des paragraphes entiers décrivant l'image) pour être utilisés comme étiquettes de montage, car ils ne seront pas découpés en mots (voir Montage de photos Polaroid pour une méthode alternative d'étiquetage utilisant les métadonnées « comment » de l'image). De nombreux autres programmes ajoutent aussi automatiquement des étiquettes et commentaires « made-by » aux images qu'ils enregistrent (BEURK), donc une certaine prudence est recommandée. Le programme GIMP aime particulièrement ajouter de tels commentaires et étiquettes, sauf si vous lui dites de ne pas le faire, à chaque fois que vous enregistrez une image. Notez qu'IM n'est généralement pas utilisé pour ajouter des commentaires aux fichiers JPEG enregistrés (en raison de la Compression avec perte JPEG) sauf si vous les traitez pour d'autres raisons. Au lieu de cela, ils sont généralement ajoutés par une autre méthode afin d'éviter de lire et de réécrire les données d'image et ainsi de dégrader les fichiers image JPEG auxquels vous ajoutez des commentaires. Voir les options de Traitement JPEG sans perte pour certaines de ces méthodes. Il est aussi important de noter que l'étiquetage (et les « commentaires » d'image) n'est pas spécifique à montage. Montage fait simplement un usage automatique des étiquettes d'image si elles sont présentes. Les étiquettes et commentaires sont attachés aux images, et à leurs formats de fichier spécifiques, et ne sont pas spécifiques à montage ni même à IM. Les formats de fichier PNG et MIFF vous permettent aussi d'utiliser des métadonnées « caption » moins couramment utilisées.
magick balloon.gif -set caption 'GIF' caption.gif
magick medical.gif -set caption 'JPG' caption.jpg
magick present.gif -set caption 'PNG' caption.png
magick shading.gif -set caption 'MIFF' caption.miff
magick montage -label '%[caption]' caption.gif caption.jpg caption.png caption.miff \
-tile x1 -frame 5 -geometry '60x60+2+2>' caption_files.jpg
rm caption.*
En fait, ces deux formats de fichier vous permettent d'enregistrer TOUTE Métadonnée de propriété d'image qui peut être présente dans une image lorsqu'elle est enregistrée !
magick balloon.gif -set my_data 'GIF' my_data.gif
magick medical.gif -set my_data 'JPG' my_data.jpg
magick present.gif -set my_data 'PNG' my_data.png
magick shading.gif -set my_data 'MIFF' my_data.miff
magick montage -label '%[my_data]' my_data.gif my_data.jpg my_data.png my_data.miff \
-tile x1 -frame 5 -geometry '60x60+2+2>' my_data_files.jpg
rm my_data.*
Laisser des espaces dans un montage
Bien que vous puissiez laisser de l'espace supplémentaire en bas d'un montage par une utilisation judicieuse du réglage « [-tile](https://imagemagick.org/command-line-options/#tile) » et en contrôlant le nombre d'images données, laisser un espace de tuile vide au milieu d'un montage nécessite l'utilisation d'une image spéciale. L'image générée « null: » a été définie spécifiquement à cette fin. La position dans laquelle elle apparaît ne recevra aucune étiquette (même si une est définie), ni n'aura de « fioritures » de cadre ou d'ombre ajoutées. La tuile est simplement laissée complètement vide à l'exception de la couleur d'arrière-plan (ou de la texture) du canevas de dessin du montage lui-même.
magick montage -label 'Image' medical.gif null: present.gif \
-tile x1 -frame 5 -geometry +2+2 montage_null.jpg
Notez que pour les autres commandes IM, l'image « null: » est représentée par une image transparente d'un seul pixel. Elle est aussi utilisée comme « image d'erreur » pour des options telles que « [-crop](https://imagemagick.org/command-line-options/#crop) » ou « [-trim](https://imagemagick.org/command-line-options/#trim) » qui pourraient produire une image « zéro » ou vide comme résultat de l'opération. Cette image spéciale ne peut pas être enregistrée puis utilisée ultérieurement pour laisser des espaces ; actuellement, elle n'est « spéciale » que si elle est donnée sur la ligne de commande de « magick montage ». | _Il n'existe aucune méthode, à ce jour, pour permettre aux images du montage de s'étendre sur plusieurs lignes ou colonnes, comme vous pouvez le faire dans les tables HTML. Vous ne pouvez pas non plus générer des lignes et des colonnes de taille variable pour ajuster au mieux le tableau d'images généré.
Si vous avez vraiment besoin de ce type de capacité, vous devrez développer votre propre type d'application de montage. Si vous développez quelque chose, alors veuillez contribuer, et nous verrons pour le fusionner dans l'application montage existante.
Certaines solutions à cela incluent l'étiquetage et l'encadrement des vignettes d'image vous-même, puis l'utilisation soit d'Assembler des images, soit d'une technique plus libre de Superposition d'images.
_
---|---
Plus de réglages de montage Les réglages de « magick montage » que j'ai montrés ci-dessus ne sont que les contrôles de base de montage. Il existe beaucoup d'autres réglages que vous pourriez vouloir envisager pour vos propres besoins. Réglages de couleur du montage [**-background**](https://imagemagick.org/command-line-options/#background) |
La couleur à l'extérieur du cadre dessiné. Souvent, elle est définie sur « none » ou « transparent », pour une utilisation sur des pages web. Le réglage -texture sera utilisé à la place s'il est donné. |
|---|---|
[**-bordercolor**](https://imagemagick.org/command-line-options/#bordercolor) |
La couleur de remplissage à l'intérieur du cadre pour les images, ou tout remplissage de bordure. Toutes les zones transparentes d'une image deviendront cette couleur, sauf si aucune décoration de ce type n'est ajoutée. |
[**-mattecolor**](https://imagemagick.org/command-line-options/#mattecolor) |
La couleur utilisée comme couleur du cadre. Notez que la couleur est aussi rendue plus claire et plus foncée pour donner au cadre un aspect biseauté 3D. Donc ce réglage définit en réalité 5 couleurs. (Voir aussi Encadrer les images) |
[**-fill**](https://imagemagick.org/command-line-options/#fill) |
La couleur de remplissage pour les étiquettes de texte et les titres. |
[**-stroke**](https://imagemagick.org/command-line-options/#stroke) |
La couleur de contour pour les étiquettes de texte et les titres. |
| Réglages de contrôle du montage |
[**-tile**](https://imagemagick.org/command-line-options/#tile) {_cols_}x{_rows_}Le nombre d'images en largeur et en hauteur utilisé pour remplir une seule image de montage. Si plus d'images ont été lues ou créées qu'il n'en tient dans une seule image de montage, alors plusieurs images seront créées. (Voir Contrôles de tuile ci-dessus)[**-title**](https://imagemagick.org/command-line-options/#title) {_string_}Définit un titre au-dessus de tout le montage, en utilisant la même police (mais plus grande) que celle utilisée pour étiqueter les images individuelles.[**-frame**](https://imagemagick.org/command-line-options/#frame) {_width_}Crée un cadre autour de la boîte contenant l'image, en utilisant la width fournie (doit être au moins 2, mais 5 ou 6 est une bonne valeur). Si utilisé, toute transparence dans les images deviendra aussi la couleur de bordure.[**-border**](https://imagemagick.org/command-line-options/#frame) {_width_}Crée une bordure autour de l'image, en utilisant la width fournie. Si utilisé, toute transparence dans les images deviendra aussi la couleur de bordure.[**-shadow**](https://imagemagick.org/command-line-options/#shadow)Génère une ombre du cadre. Notez qu'aucun argument n'est requis ni attendu.[**-texture**](https://imagemagick.org/command-line-options/#texture) {_filename_}Utilise la texture donnée (image en tuiles) pour l'arrière-plan au lieu d'une couleur spécifique. Voir la section sur Arrière-plan et transparence ci-dessous pour plus d'informations.[**-geometry**](https://imagemagick.org/command-line-options/#geometry) {_W_}x{_H_}+{_X_}+{_Y_}Redimensionne les images après qu'elles ont toutes été lues, avant que montage ne les superpose sur son canevas. Cela définit aussi la taille et l'espacement entre les tuiles dans lesquelles les images sont dessinées. Si aucune taille n'est spécifiée, les images ne seront pas redimensionnées.[**-gravity**](https://imagemagick.org/command-line-options/#gravity) {_direction_}si l'image est plus petite que le cadre, où dans le cadre l'image doit être placée. Par défaut, elle est centrée.
À ce qui précède s'ajoutent tous les réglages de police que l'opérateur de création d'image « label: » comprend (Voir Générateur d'image Label). Ces réglages sont utilisés pour la création des étiquettes ajoutées sous l'image affichée. Ceux-ci incluent des réglages tels que « [-font](https://imagemagick.org/command-line-options/#font) », « [-pointsize](https://imagemagick.org/command-line-options/#pointsize) » (ignoré pour « [-title](https://imagemagick.org/command-line-options/#title) »), « [-density](https://imagemagick.org/command-line-options/#density) », « [-fill](https://imagemagick.org/command-line-options/#fill) », « [-stroke](https://imagemagick.org/command-line-options/#stroke) », et « [-strokewidth](https://imagemagick.org/command-line-options/#strokewidth) ». Tant que tout ou partie des réglages ci-dessus sont définis ou réinitialisés, avant l'argument final « nom de fichier de sortie », montage les utilisera comme vous l'avez demandé. Réutiliser les réglages pour la lecture/création d'images Notez cependant que beaucoup de ces options sont aussi utilisées à d'autres fins, soit dans la génération d'images, soit pendant le traitement d'images. Mais grâce à la gestion de ligne de commande « faire les choses au fur et à mesure qu'on les voit » d'IM v6, cela ne pose aucun problème à la commande « magick montage ». Cela signifie que vous êtes libre d'utiliser n'importe lequel de ces réglages d'option pour lire, créer ou modifier les images lues, puis de réinitialiser ces réglages après que toutes les images ont été lues ou créées. La valeur finale du réglage sera ce que montage utilisera pour son traitement final. Ce n'était pas le cas dans les versions d'IM antérieures à la version 6, dans lesquelles il était généralement impossible de séparer les réglages de création d'image des réglages de montage, sans générer d'images intermédiaires (comme dans l'exemple Étiquettes d'image ci-dessus). Voici un exemple pratique de réutilisation de réglages. Je voulais faire une table de quelques-unes des polices que j'ai utilisées dans ces pages d'exemples, puis réinitialiser les réglages à d'autres valeurs pour le traitement final des images par montage.
magick montage -pointsize 24 -background Lavender \
-font Candice -label Candice label:Abc-123 \
-font Corsiva -label Corsiva label:Abc-123 \
-font SheerBeauty -label SheerBeauty label:Abc-123 \
-font Ravie -label Ravie label:Abc-123 \
-font Arial -label Arial label:Abc-123 \
-font ArialI -label ArialI label:Abc-123 \
-font ArialB -label ArialB label:Abc-123 \
-font ArialBk -label ArialBk label:Abc-123 \
-font CourierNew -label CourierNew label:Abc-123 \
-font LokiCola -label LokiCola label:Abc-123 \
-font Gecko -label Gecko label:Abc-123 \
-font Wedgie -label Wedgie label:Abc-123 \
-font WebDings -label WebDings label:Abc-123 \
-font WingDings -label WingDings label:Abc-123 \
-font WingDings2 -label WingDings2 label:Abc-123 \
-font Zymbols -label Zymbols label:Abc-123 \
\
-frame 5 -geometry +2+2 -font Arial -pointsize 12 \
-background none -bordercolor SkyBlue -mattecolor DodgerBlue \
montage_fonts.gif
![[Sortie IM]](../static/img/montage/montage_fonts.gif)
Notez les deux étapes de la commande « magick montage ». Que j'ai clairement marquées en utilisant une ligne supplémentaire presque vide. La première partie est essentiellement exactement comme vous définiriez plusieurs images en utilisant la commande IM « magick » normale, et est traitée dans le même ordre « faites-le au fur et à mesure que vous le voyez ». La deuxième partie définit tous les réglages que je voulais que la commande « magick montage » elle-même utilise. C'est-à-dire l'encadrement, le redimensionnement d'image, les polices et les couleurs que je voulais utiliser dans l'image de montage finale. Je prends particulièrement soin de réinitialiser les réglages « [-font](https://imagemagick.org/command-line-options/#font) » et « [-pointsize](https://imagemagick.org/command-line-options/#pointsize) » pour l'étiquetage sous les images montées. Bien que vous puissiez séparer les options de « magick montage » de cette façon, vous pouvez en fait définir les réglages de montage à tout moment sur la ligne de commande. Tant que ces réglages n'interfèrent pas avec vos options de création et de traitement d'image, et qu'ils sont toujours définis correctement lorsque la fin de la ligne de commande est atteinte, « magick montage » les utilisera. À PART : Vous pourriez vouloir regarder le script shell que j'ai écrit pour faire quelque chose de similaire à ce qui précède (et qui fonctionne avec les versions plus anciennes de montage) pour afficher un répertoire de polices truetype (.ttf), appelé « [**show_fonts**](../static/img/scripts/show_fonts) ». Un autre exemple de script shell est « [**show_colors**](../static/img/scripts/show_colors) ».
Différences d'options entre montage et magick
Maintenant, bien que « magick montage » vous permette généralement d'utiliser n'importe quels réglages et opérateurs de « magick » pour lire et traiter ses images d'entrée, il existe quelques différences qui doivent être soulignées. Ces opérateurs et réglages de « magick » sont différents lorsqu'ils sont utilisés au sein de « magick montage ».
[**-tile**](https://imagemagick.org/command-line-options/#tile)Dans «magick», le réglage «[-tile](https://imagemagick.org/command-line-options/#tile)» définit une image à utiliser comme texture au lieu d'utiliser la couleur «[-fill](https://imagemagick.org/command-line-options/#fill)». Dans «magick montage», il définit comment disposer les « tuiles » de cellules d'image individuelles. Voir Contrôles de disposition des tuiles ci-dessus pour plus de détails.[**-frame**](https://imagemagick.org/command-line-options/#frame)Dans «magick», c'est un opérateur utilisé pour ajouter une bordure de cadre 3D autour des images, et nécessite 4 arguments pour fonctionner correctement (Voir les exemples Convert Frame). Voir Décoration par cadre pour plus de détails.[**-border**](https://imagemagick.org/command-line-options/#border)Vers IM v6.1.0, cet opérateur est devenu une option spéciale de montage. Ainsi, comme l'option de cadre précédente, il ne prend qu'un seul nombre en argument, plutôt que deux arguments comme pour Convert Border. Voir Décoration par bordure pour plus de détails.[**-shadow**](https://imagemagick.org/command-line-options/#shadow)L'option «[-shadow](https://imagemagick.org/command-line-options/#shadow)» dans «magick» prend un argument qui est utilisé pour créer une ombre douce et floue qui peut être placée sous une seconde copie de l'image originale. Cependant, dans «magick montage», ce n'est qu'un réglage booléen qui active et désactive simplement les capacités d'ombrage rectangulaire. Voir Décoration par ombre pour plus de détails.[**-geometry**](https://imagemagick.org/command-line-options/#geometry)L'option «[-geometry](https://imagemagick.org/command-line-options/#geometry)» dans «magick montage» est simplement enregistrée pour fournir la taille des images au sein de chaque cellule du montage final, et l'espacement entre les cellules. Dans «magick», elle redimensionne uniquement la dernière image, et définit le décalage pour la Composition d'images.
Si vous avez vraiment besoin d'utiliser la forme « magick » de ces options, alors vous devrez pré-traiter vos images en utilisant « magick » avant de les passer à « magick montage ». Une méthode utilisant des fichiers intermédiaires a été démontrée dans l'exemple Étiquettes d'image ci-dessus. Une autre consiste simplement à faire votre traitement dans « magick » et à canaliser les images multiples résultantes dans « magick montage ». Cette séparation est facile à réaliser si vous effectuez toujours d'abord votre gestion d'entrée d'image, puis définissez les réglages spécifiques à « magick montage » par la suite, comme je l'ai fait dans tous ces exemples. C'est particulièrement montré dans le dernier exemple de polices ci-dessus. Par exemple, encadrons nos images en utilisant le cadre « magick », puis encadrons-les à nouveau en utilisant les cadres étiquetés de « magick montage ».
magick -label %f balloon.gif medical.gif present.gif shading.gif \
-mattecolor peru -frame 10x5+3+0 miff:- |\
magick montage - -tile x1 -frame 5 -geometry '64x56+5+5>' double_frame.jpg
Vous pouvez aussi voir les arguments supplémentaires requis par la forme « magick » de l'opérateur « [-frame](https://imagemagick.org/command-line-options/#frame) ».
Index de répertoires d'images
Cartes d'images miniatures HTML
Montage est spécialement conçu pour générer des cartes de vignettes d'images. Par exemple, ici j'ai créé un index du répertoire source Images photo, qui contient les photos numériques utilisées comme exemples tout au long des Exemples IM. Cliquez sur l'image « art » ci-dessous pour voir le résultat. |
magick montage -label '%t\n%[width]x%[height]' \
-size 512x512 '../img_photos/*_orig.*[120x90]' -auto-orient \
-geometry +5+5 -tile 5x -frame 5 -shadow photo_index.html
Exemples IM
Photo Store
| Notez l'utilisation de « %[width]x%[height] » au lieu de simplement « %wx%h ». C'est important car l'image est redimensionnée au fur et à mesure de sa lecture. Le premier étiquettera les images avec leur taille en pixels originale telle qu'elle est sur le disque, tandis que le second utilisera la taille redimensionnée actuelle de l'image. C'est quelque chose qui est facilement négligé par les utilisateurs.
---|---
Le résultat de cette commande a été trois fichiers...
[photo_index.png](../static/img/montage/photo_index.png)Le montage de toutes les vignettes des images [photo_index_map.shtml](../static/img/montage/photo_index_map.shtml.txt)Une « carte d'image » HTML pour l'image de vignettes [photo_index.html](../static/img/montage/photo_index.html.txt)La page d'index de vignettes HTML pour le World Wide Web. Cela inclut aussi une copie de la carte d'image précédente.
Bien sûr, vous n'avez pas à générer un fichier d'index HTML si vous ne voulez qu'une image d'index. Dans ce cas, remplacez simplement « photo_index.html » dans la commande ci-dessus par l'image que vous voulez générer. Notez l'utilisation de l'Échappement de propriété d'image « %t » pour l'étiquette « [-label](https://imagemagick.org/command-line-options/#label) » de l'image. C'est le nom de fichier de l'image sans aucun composant de « chemin ». Bien que le lien HTML contienne toujours les composants de « chemin » appropriés vous permettant de construire l'image d'index dans un répertoire différent de celui des images elles-mêmes. Les images source « '*_orig.*' » dans les exemples ci-dessus sont entre guillemets, donc la commande « magick montage » effectue elle-même le développement de « * », et non le shell de ligne de commande. Cela évite toute limite de longueur de ligne de commande qui pourrait vous poser problème. Je fais aussi un redimensionnement initial des images « [120x190] » lors de leur lecture (voir Modificateurs de lecture d'image). Pour les images JPEG, j'ai aussi spécifié un réglage « [-size](https://imagemagick.org/command-line-options/#size) » plus petit afin que la bibliothèque JPEG puisse faire une mise à l'échelle initiale très approximative, et ne pas lire toute l'image en mémoire. Si ce n'est pas fait, alors de très grandes images JPEG pourraient consommer une énorme quantité de mémoire et de cycles CPU alors qu'il n'y a pas de réel besoin. Je « [-strip](https://imagemagick.org/command-line-options/#strip) » aussi tous les profils que les images peuvent avoir. Pour plus d'infos, voir Profils, suppression et gestion JPEG et Lecture des images JPEG. Rappelez-vous que l'option « [-geometry](https://imagemagick.org/command-line-options/#geometry) » de montage peut aussi spécifier un réglage de redimensionnement final, bien que dans ce cas, ce ne soit pas nécessaire puisque je l'ai fait pendant le processus de lecture, donc je ne définis aucune « taille » dans ce réglage. Enfin, l'option « [-tile](https://imagemagick.org/command-line-options/#tile) » de « 5x » est utilisée pour garantir que toutes les images apparaissent dans une seule image, sinon « magick montage pourrait générer des fichiers HTML multi-pages, qui ne sont pas correctement liés entre eux. Cela changera, espérons-le, bien que la génération HTML ne soit pas un objectif principal d'ImageMagick. Pour d'autres façons de générer des vignettes et des pages d'index HTML, lisez la Page d'exemples de vignettes.
Cartes d'index HTML plus petites, avec images JPEG
L'image d'index ci-dessus a généré une image d'index au format PNG. Cela a été utilisé parce que c'est un format sans perte, ce qui peut être important lorsque les images indexées sont de couleurs très différentes. Cela permet aussi l'utilisation des nouvelles fonctionnalités d'« ombres douces » de montage si la couleur d'arrière-plan est définie sur « transparent » ou « none ». Les très vieilles versions d'IM auraient généré une image GIF pour ce qui précède. Cependant, cela a une lourde réduction de couleurs sur les résultats du fait des limitations du format. Cela ne permettait pas non plus l'utilisation des « ombres douces » semi-transparentes comme le permet le PNG. JPEG ne permet pas non plus la semi-transparence, mais ce n'est pas un problème si vous n'utilisez pas un arrière-plan transparent pour l'image. C'est cependant beaucoup plus petit que PNG, ce qui offre un moyen de réduire drastiquement la taille de l'image d'index, en particulier pour une utilisation web, tout en gérant une large gamme de couleurs. Cependant, la sortie HTML ci-dessus ne génère que des images au format PNG, vous devrez donc non seulement transformer le PNG en JPEG avec magick, mais aussi effectuer un traitement supplémentaire pour corriger le fichier HTML. |
magick montage -label '%t\n%[width]x%[height]' \
-size 512x512 '../img_photos/*_orig.*[120x90]' -auto-orient \
-geometry +5+5 -tile 5x -frame 5 -shadow photo_jpeg.html
magick photo_jpeg.png photo_jpeg.jpg
perl -i -lpe 's/src="photo_jpeg.png"/src="photo_jpeg.jpg"/' photo_jpeg.html
rm -f photo_jpeg.png photo_jpeg_map.shtml
Exemples IM
Photo Store
Les commandes ci-dessus sont plutôt subtiles, voici donc ce qui se passe...
- D'abord, je génère un index HTML de vignettes de montage, comme je l'ai fait précédemment. Cela a généré les fichiers : «
photo_jpeg.html» et «photo_jpeg.png» - J'ai ensuite converti l'image PNG en une image JPEG plus petite et avec perte.
- Puis j'ai utilisé un petit script «
perl» d'une ligne pour modifier le fichier HTML afin d'utiliser l'image JPEG au lieu du PNG. - Et enfin, j'ai supprimé l'image PNG, ainsi que le fichier de carte SHTML dont je n'ai pas besoin.
Et hop, voilà, nous avons un index de vignettes utilisant une très petite image JPEG pour l'image d'index de vignettes. Voici des comparaisons des tailles de fichier de l'image d'index de vignettes...
C'est-à-dire que l'image utilisée pour l'index ne représente qu'environ 15 % de la taille de l'image PNG originale. Une grande économie pour une page web téléchargeable de vignettes ! Vous pouvez rendre l'image JPEG encore plus petite en utilisant un réglage « [-quality](https://imagemagick.org/command-line-options/#quality) » plus petit, bien que le réglage par défaut produise un résultat très raisonnable. D'autres options possibles incluent l'utilisation de « [-sampling-factor](https://imagemagick.org/command-line-options/#sampling-factor) 2x1 » pour le rendre encore plus petit.
Images d'index visuel (une solution sans montage)
Une alternative à l'utilisation de montage est d'utiliser un format d'entrée spécial « index visuel »... |
magick 'vid:../img_photos/*_orig.*' vid_index.gif
Index visuel de
Photo Store
Et il peut aussi générer des fichiers d'index HTML « cliquables ». |
magick 'vid:../img_photos/*_orig.*' vid_index.html
HTML visuel de
Photo Store
Il est évident que « VID: » utilise montage en interne pour générer le tableau d'index. Cependant, vous n'avez pas les mêmes contrôles que si vous aviez utilisé montage directement. Notez qu'un index HTML VID crée une image de vignettes au format PNG.
Un montage de photos Polaroid
Avec l'avènement d'une Transformation Polaroid complexe, il est maintenant possible de générer un style de montage, et d'indexation par montage, tout à fait différent. |
magick montage -size 256x256 '../img_photos/*_orig.*' -auto-orient \
-auto-orient -thumbnail 128x128 \
-set caption '%t' -bordercolor AliceBlue -background grey20 \
+polaroid \
+set label -background white -geometry +1+1 -tile 4x \
polaroid_index.html
Montage
Polaroid
Notez que comme j'ai utilisé « [+polaroid](https://imagemagick.org/command-line-options/#polaroid) » pour encadrer et étiqueter les images, j'ai eu besoin de redimensionner l'image moi-même (en utilisant « [-thumbnail](https://imagemagick.org/command-line-options/#thumbnail) »), et de m'assurer que le « [-background](https://imagemagick.org/command-line-options/#background) » et l'« [-label](https://imagemagick.org/command-line-options/#label) » de l'image ont été réinitialisés avant de créer effectivement le tableau d'index « magick montage ». La Transformation Polaroid tend cependant à flouter le texte lors de l'ajout de la « courbure » à la vignette. Cependant, vous pouvez améliorer l'ensemble en générant les images polaroid à une taille plus grande puis en réduisant le résultat de 50 %. Le seul inconvénient est l'effet d'« ombre » réduit. |
magick montage -size 400x400 '../img_photos/*_orig.*' \
-auto-orient -thumbnail 200x200 \
-set caption '%t' -bordercolor Lavender -background grey40 \
-pointsize 9 -density 144x144 +polaroid -resize 50% \
+set label -background white -geometry +1+1 -tile 5x \
polaroid_index2.html
Montage
Polaroid
plus net
Ce montage élégant, ainsi que les autres techniques montrées ci-dessus, a été utilisé pour créer un script générant un index de vignettes de montage dans le répertoire « [photo_store](img_photos.html) » réel. Voir Index du Photograph Store pour les résultats de ce script.
Techniques spéciales utilisant Montage
Montage en colonnes
Par défaut, « magick montage » ne peut placer les images que dans l'ordre donné (généralement l'ordre trié), ligne par ligne. Cependant, parfois, vous aimeriez les voir affichées dans l'ordre des colonnes. Cela ne peut pas être fait avec une seule commande, mais nécessite un pipeline d'au moins deux commandes. Par exemple, ici je génère une page de tuiles 5x3, en utilisant deux montages. |
magick montage font_*.gif -tile 1x3 -geometry 16x16+1+1 miff:- |\
magick montage - -geometry +0+0 -tile 5x1 montage_columns.gif
![[Sortie IM]](../static/img/montage/montage_columns.gif)
Notez que c'est le premier « magick montage » qui crée les tuiles et effectue tout dimensionnement de tuile par géométrie, encadrement, étiquetage et espacement nécessaire. Il produira ensuite une image pour chaque colonne de tuiles. Le second « magick montage » concatène alors simplement les colonnes en images de « page » sans ajouter plus d'espace entre les colonnes. Si vous ne voulez qu'une seule image avec un nombre variable de colonnes, alors vous pouvez remplacer le second « magick montage » par un « magick » pour concaténer sans ajouter d'espace supplémentaire de « pages ». Par exemple... |
magick montage font_*.gif -tile 1x3 -geometry 16x16+1+1 miff:- |\
magick - +append montage_columns_2.gif
Tuiles de montage superposées
Dans le Forum des utilisateurs IM, lors d'une discussion entre Fred Weinhaus, alias fmw42, et un autre utilisateur pooco, il a été découvert que si vous définissez l'espace inter-tuiles (défini dans le réglage « [-geometry](https://imagemagick.org/command-line-options/#geometry) ») sur un nombre négatif, vous pouvez en fait superposer les zones en tuiles dans lesquelles les images sont dessinées. Par exemple, ici nous utilisons un espacement inter-tuiles horizontal négatif, pour une seule rangée d'images.
magick montage null: font_*.gif null: \
-tile x1 -geometry -5+2 montage_overlap.jpg
Faire pivoter les images rendra la série superposée encore plus intéressante...
magick montage null: font_*.gif null: -background none -rotate 30 \
-background white -tile x1 -geometry -8+2 montage_rot_overlap.jpg
Notez que j'ai eu besoin d'ajouter une image d'espacement « null: » spéciale au début et à la fin de la rangée d'images afin que les images ne débordent pas du canevas que « magick montage » calcule et génère. Cela nous présente des possibilités intéressantes. Par exemple, vous pourriez générer une rangée très intéressante de vignettes superposées, en faisant usage de la Transformation Polaroid à rotation aléatoire.
magick montage -size 400x400 null: ../img_photos/[a-m]*_orig.* null: \
-auto-orient -thumbnail 200x200 \
-bordercolor Lavender -background black +polaroid -resize 30% \
-gravity center -background none -extent 80x80 \
-background SkyBlue -geometry -10+2 -tile x1 polaroid_overlap.jpg
L'utilisation d'extent ci-dessus sert à supprimer le caractère aléatoire de la taille d'image que « [+polaroid](https://imagemagick.org/command-line-options/#+polaroid) » peut produire à différentes « exécutions », donnant plus de contrôle sur l'espacement final et le chevauchement entre les images. C'est un résultat très intéressant, bien qu'il devrait en fait être classé comme un BUG, car ce n'est pas l'objectif prévu de « magick montage ». Je ne m'attendrais pas non plus à ce qu'un mappage d'image HTML fonctionne correctement, sans quelques corrections de la part de l'utilisateur. Cependant, une solution plus complexe et contrôlable par l'utilisateur pour les images superposées est démontrée en utilisant une forme scriptée de Fusion de calques, qui est la solution recommandée et plus logique. Voir les exemples dans Positionnement programmé d'images en calques.
Mode de concaténation de montage
Comme vous l'avez vu, montage a un mode de concaténation spécial, qui peut être utilisé pour joindre des images ensemble sans espaces supplémentaires, exactement comme l'option « [-append](https://imagemagick.org/command-line-options/#append) ». Je recommande cependant que vous définissiez l'option « [-tile](https://imagemagick.org/command-line-options/#tile) » de manière appropriée, afin de diriger l'assemblage soit horizontalement, soit verticalement, soit en tableau. Par exemple, ici nous utilisons un « -tile x1 » pour assembler les images horizontalement.
magick montage balloon.gif medical.gif present.gif shading.gif \
-mode Concatenate -tile x1 montage_cat.jpg
Mais vous pouvez aussi l'utiliser pour créer tout aussi facilement un tableau d'images. De préférence, les images sont de la même taille, afin qu'elles s'assemblent correctement.
magick montage balloon.gif medical.gif present.gif shading.gif \
-mode Concatenate -tile 2x2 montage_array.jpg
Lors de la concaténation d'images de tailles différentes, les images sont concaténées avec un alignement vertical « haut », puis un alignement horizontal de rangée « gauche ».
magick montage medical.gif rose: present.gif shading.gif \
granite: balloon.gif netscape: recycle.gif \
-mode Concatenate -tile 4x montage_cat2.jpg
Cependant, l'alignement vertical devient bizarre lorsque l'encadrement est aussi ajouté.
magick montage medical.gif rose: present.gif shading.gif \
granite: balloon.gif netscape: recycle.gif \
-mode Concatenate -tile 4x -frame 5 montage_cat3.jpg
Géométrie zéro, prudence requise
Avec uniquement des valeurs d'espacement « [-geometry](https://imagemagick.org/command-line-options/#geometry) » (aucun redimensionnement d'image spécifié), tous les cadres d'image du montage sont définis à la même taille, de sorte que l'image la plus large comme la plus haute s'ajustent, sans être redimensionnées. C'est en soi un comportement utile...
magick montage present.gif rose: shading.gif \
-frame 5 -geometry +1+1 montage_geom_1.jpg
Cependant, un espace de 1 pixel a été laissé autour et entre les cadres d'image. Mais si vous essayez de supprimer ces espaces avec une position de « +0+0 », vous tombez sur un problème très inhabituel...
magick montage present.gif rose: shading.gif \
-tile x1 -frame 5 -geometry +0+0 montage_geom_0.jpg
La « géométrie zéro » que vous avez spécifiée (c'est-à-dire « -geometry 0x0+0+0 ») a pour effet supplémentaire de mettre montage en mode « concaténation » (voir ci-dessus), ce qui n'est PAS ce que nous recherchions ci-dessus. Pour des images uniques, peu importe aussi que nous utilisions un « [-append](https://imagemagick.org/command-line-options/#append) » zéro (et donc le mode concaténation). Le résultat désiré est ce que nous voulons, pas de bordures supplémentaires. Ainsi, un « -geometry +0+0 » convient si vous utilisez seulement « magick montage » pour ajouter une étiquette à une image. Le mode concaténation ne sera cependant pas invoqué si vous spécifiez une « taille » de géométrie non nulle pour vos images, même si vous avez utilisé un décalage zéro. Cela nous donne à son tour une solution astucieuse à notre problème d'origine. Ce que nous faisons, c'est définir une taille d'image de géométrie de « 1x1 » mais aussi indiquer à IM de ne jamais réduire les images (en utilisant un caractère « < ») à cette taille ! En d'autres termes, ne jamais redimensionner une image, utilisez simplement un décalage zéro, dans un argument de géométrie non nul.
magick montage present.gif rose: shading.gif \
-frame 5 -geometry '1x1+0+0<' montage_geom_1x1.jpg
Cela soulève une autre bonne règle empirique...
Définissez toujours une géométrie non nulle lors de l'utilisation de montage
Même s'il ne s'agit que de la « fausse » géométrie telle que je l'ai utilisée ci-dessus.
Gestion de l'arrière-plan et de la transparence
Par défaut, les images sont superposées sur le canevas du montage, qui est créé en utilisant le réglage de couleur « [-background](https://imagemagick.org/command-line-options/#background) », comme vous pouvez le voir ici. |
magick montage font_9.gif \( recycle.gif -set label recycle \) medical.gif \
-tile x1 -geometry +5+5 -background lightblue bg_lightblue.gif
![[Sortie IM]](../static/img/montage/bg_lightblue.gif)
Au lieu d'une couleur unie, vous pouvez plutôt utiliser « [-texture](https://imagemagick.org/command-line-options/#texture) » pour définir une image de tuile à utiliser à la place de la couleur « [-background](https://imagemagick.org/command-line-options/#background) ». |
magick montage font_9.gif \( recycle.gif -set label recycle \) medical.gif \
-tile x1 -geometry +5+5 -texture bg.gif bg_texture.gif
![[Sortie IM]](../static/img/montage/bg_texture.gif)
Ajouter des cadres (qui ajoutent un espace de bordure supplémentaire dans les tuiles) ajoute simplement plus de « fioritures » dessinées par-dessus le canevas d'arrière-plan. |
magick montage font_9.gif \( recycle.gif -set label recycle \) medical.gif \
-tile x1 -frame 5 -geometry '40x40+5+5>' \
-bordercolor lightblue -texture bg.gif bg_frame.gif
![[Sortie IM]](../static/img/montage/bg_frame.gif)
Notez que lorsqu'elle est encadrée, le réglage « [-bordercolor](https://imagemagick.org/command-line-options/#bordercolor) » sera utilisé pour remplir l'intérieur du cadre, devenant effectivement la couleur d'arrière-plan de l'image. Notez aussi que toutes les zones transparentes de l'image sont aussi définies sur cette couleur. | _Avant la version 6.1.4 d'IM, ce qui était vu dans les zones transparentes des images était indéfini. Dans certaines versions, vous verriez à travers l'image encadrée la couleur ou la texture d'arrière-plan. Dans d'autres, vous pourriez obtenir du noir ou du blanc. Dans d'autres versions encore, vous pourriez voir à travers tous les calques et l'image finale serait transparente là où l'image originale était transparente. Mettez à jour MAINTENANT si c'est un problème pour vous.
_
---|---
Également nouvelle dans IM version 6.1.4 est la capacité d'utiliser un cadre spécial d'un pixel de large. Cela supprimera essentiellement complètement le cadre autour des cellules d'image, mais en conservant la marge interne « [-bordercolor](https://imagemagick.org/command-line-options/#bordercolor) » autour (et en dessous) de l'image. Par exemple, comparez un cadre de « 1 » avec la largeur de cadre minimale de « 2 ». |
magick montage font_1.gif \( recycle.gif -set label recycle \) medical.gif \
-tile x1 -frame 1 -geometry '40x40+5+5>' \
-bordercolor lightblue -texture bg.gif bg_frame_1.gif
magick montage font_2.gif \( recycle.gif -set label recycle \) medical.gif \
-tile x1 -frame 2 -geometry '40x40+5+5>' \
-bordercolor lightblue -texture bg.gif bg_frame_2.gif
![[Sortie IM]](../static/img/montage/bg_frame_2.gif)
Mais que faire si vous voulez que votre montage ait un arrière-plan transparent ? En particulier, si vous prévoyez de l'utiliser sur une page web contenant un mappage de texture. Simple, utilisez simplement une couleur « [-background](https://imagemagick.org/command-line-options/#background) » de « None » ou « Transparent », sans aucune image « [-texture](https://imagemagick.org/command-line-options/#texture) » pour remplacer ce réglage. Par exemple, ici nous avons généré un montage transparent. Notez que « [-geometry](https://imagemagick.org/command-line-options/#geometry) » est toujours utilisé pour ajouter de l'espace autour et entre les images. |
magick montage font_9.gif recycle.gif medical.gif \
-tile x1 -geometry +2+2 -background none bg_none.gif
![[Sortie IM]](../static/img/montage/bg_none.gif)
Bien sûr, si vous utilisez aussi « [-frame](https://imagemagick.org/command-line-options/#frame) », vous devez rendre le « [-bordercolor](https://imagemagick.org/command-line-options/#bordercolor) » transparent aussi. |
magick montage font_9.gif recycle.gif medical.gif \
-tile x1 -frame 5 -geometry '40x40+5+5>' \
-bordercolor none -background none bg_framed_trans.gif
![[Sortie IM]](../static/img/montage/bg_framed_trans.gif)
Notez que l'option « -shadow » de montage n'est absolument pas affectée par tout ce qui précède. Elle est appliquée selon la forme transparente finale des cellules, avant qu'elles ne soient superposées sur la couleur ou la texture d'arrière-plan. |
magick montage font_9.gif recycle.gif medical.gif \
-tile x1 -shadow -geometry '40x40+5+5>' \
-texture bg.gif bg_shadow.gif
magick montage font_9.gif recycle.gif medical.gif \
-tile x1 -frame 5 -shadow -geometry '40x40+5+5>' \
-bordercolor none -texture bg.gif bg_shadow_framed.gif
Toutes les suggestions, idées ou autres exemples d'utilisation de « magick montage » sont bien sûr toujours les bienvenus. Il en va de même pour tout ce qui se trouve dans ces pages d'exemples.
Taille de sortie de l'image de montage
Les mathématiques de montage sont simples...
Fondamentalement, la largeur du montage devrait être....
(geometry_size + 2*frame_size + 2*geometry_offset) * images_per_column
C'est-à-dire que chaque 'cellule' de montage a un cadre et un espacement (bordure)
de taille fixe ajoutés autour avant que les cellules ne soient assemblées.
En essence, la taille du montage est aussi un multiple de la taille de tuile, ce qui peut
faciliter le découpage du montage, ou le réarrangement des 'cellules', si désiré,
car ce sont de simples tuiles de taille fixe dans un tableau rectangulaire.
La hauteur est similaire mais avec l'espacement supplémentaire nécessaire pour les étiquettes et
le titre optionnel du montage, qui sont tous deux beaucoup plus difficiles à
calculer, car ils dépendent fortement du texte, de la police, de la taille de point et des réglages
de densité.
Il y a aussi un effet de l'ajout d'une ombre au montage dans ce calcul,
mais cela semble être un simple petit ajout fixe aux bords inférieur et droit.
Cela ne semble pas affecter la taille de tuile utilisée.
![[Sortie IM]](../static/img/montage/montage.jpg)
![[Sortie IM]](../static/img/montage/montage_geom.jpg)
![[Sortie IM]](../static/img/montage/montage_geom_size.jpg)
![[Sortie IM]](../static/img/montage/montage_geom_larger.jpg)
![[Sortie IM]](../static/img/montage/tile_1.gif)
![[Sortie IM]](../static/img/montage/tile_2.gif)
![[Sortie IM]](../static/img/montage/tile_3.gif)
![[Sortie IM]](../static/img/montage/tile_4.gif)
![[Sortie IM]](../static/img/montage/tile_5.gif)
![[Sortie IM]](../static/img/montage/tile_6.gif)
![[Sortie IM]](../static/img/montage/tile_7.gif)
![[Sortie IM]](../static/img/montage/tile_8.gif)
![[Sortie IM]](../static/img/montage/tile_9.gif)
![[Sortie IM]](../static/img/montage/tile_0.gif)
![[Sortie IM]](../static/img/montage/tile_9x1.gif)
![[Sortie IM]](../static/img/montage/tile_4x3.gif)
![[Sortie IM]](../static/img/montage/tile_3x3.gif)
![[Sortie IM]](../static/img/montage/tile_2x3.gif)
![[Sortie IM]](../static/img/montage/tile_x1.gif)
![[Sortie IM]](../static/img/montage/tile_x2.gif)
![[Sortie IM]](../static/img/montage/tile_x4.gif)
![[Sortie IM]](../static/img/montage/tile_4x.gif)
![[Sortie IM]](../static/img/montage/tile_5x.gif)
![[Sortie IM]](../static/img/montage/tile_9x.gif)
![[Sortie IM]](../static/img/montage/multi_0.gif)
![[Sortie IM]](../static/img/montage/multi_1.gif)
![[Sortie IM]](../static/img/montage/multi_2.gif)
![[Sortie IM]](../static/img/montage/frame.jpg)
![[Sortie IM]](../static/img/montage/border.jpg)
![[Sortie IM]](../static/img/montage/frame_shadow.jpg)
![[Sortie IM]](../static/img/montage/shadow_noframe.jpg)
![[Sortie IM]](../static/img/montage/shadow_spacing.png)
![[Sortie IM]](../static/img/montage/label_fname.jpg)
![[Sortie IM]](../static/img/montage/label_shadow.jpg)
![[Sortie IM]](../static/img/montage/label_fname3.jpg)
![[Sortie IM]](../static/img/montage/titled.jpg)
![[Sortie IM]](../static/img/montage/labeling.jpg)
![[Sortie IM]](../static/img/montage/label_control.jpg)
![[Sortie IM]](../static/img/montage/label_files.jpg)
![[Sortie IM]](../static/img/montage/comment_files.jpg)
![[Sortie IM]](../static/img/montage/caption_files.jpg)
![[Sortie IM]](../static/img/montage/my_data_files.jpg)
![[Sortie IM]](../static/img/montage/montage_null.jpg)
![[Sortie IM]](../static/img/montage/double_frame.jpg)
![[Texte IM]](../static/img/montage/photo_index_sizes.txt.gif)
![[Sortie IM]](../static/img/montage/montage_columns_2.gif)
![[Sortie IM]](../static/img/montage/montage_overlap.jpg)
![[Sortie IM]](../static/img/montage/montage_rot_overlap.jpg)
![[Sortie IM]](../static/img/montage/polaroid_overlap.jpg)
![[Sortie IM]](../static/img/montage/montage_cat.jpg)
![[Sortie IM]](../static/img/montage/montage_array.jpg)
![[Sortie IM]](../static/img/montage/montage_cat2.jpg)
![[Sortie IM]](../static/img/montage/montage_cat3.jpg)
![[Sortie IM]](../static/img/montage/montage_geom_1.jpg)
![[Sortie IM]](../static/img/montage/montage_geom_0.jpg)
![[Sortie IM]](../static/img/montage/montage_geom_1x1.jpg)
![[Sortie IM]](../static/img/montage/bg_frame_1.gif)
![[Sortie IM]](../static/img/montage/bg_shadow.gif)
![[Sortie IM]](../static/img/montage/bg_shadow_framed.gif)