⚠️ Ceci est un site de traduction non officiel, sans lien avec ImageMagick Studio LLC. Pour des informations officielles, consultez la page originale (https://usage.imagemagick.org/fonts/index.html).

Exemples ImageMagick -- Effets de police composés

Exemples ImageMagick Préface et index

Polices composées Dessiner du texte sous forme d'images dans divers styles

Rempli de tuiles, Rempli de dégradé, À l'envers, Ombre dure, Ombre cisaillée, Incliné, Tampon, Extrudé, Contour, Contour multicolore, Trait, Trait épais, Trait fin, Double contour, Psychédélique, Ballon, Joint, Chevauché, Décalé aléatoirement, Flou, Ombre floue, Ombre douce, Contour doux, Contour doux plus dense, Ombre floutée selon la distance, Impression sale, Biseau, Conique, Biseau intérieur, Arche, Arc, Cercle, Vibrato, Comète, Fumée. Utiliser une image de masque avec les polices Pour retirer des parties d'une image, avant la superposition Traitement avancé des polices Développer les polices pour produire des résultats plus complexes

Polices plus complexes, Enseigne au néon, Métallique Dessiner du texte n'est que le début de ce qui est possible avec ImageMagick. Nous voyons ici comment modifier la capacité de base de dessin de texte d'IM pour créer des polices fantaisistes et des effets spéciaux, que vous pourrez ensuite utiliser sur vos pages web et vos documents.


Effets de police composés

Du simple texte transformé en images est ennuyeux, mais avec très peu d'efforts vous pouvez superposer et colorer du texte de façon à produire des effets très étranges et merveilleux. Pour cela, il faut dessiner le texte plusieurs fois, superposer différentes tuiles et couleurs, et appliquer certains des nombreux opérateurs d'image disponibles afin de générer des effets spéciaux plus intéressants à partir du texte original et ennuyeux. Notez que bon nombre de ces effets peuvent s'appliquer à d'autres images que la simple police utilisée ici. En particulier, vous pouvez utiliser ces effets sur des images de clip-art. Police en tuiles : Vous n'êtes pas limité à dessiner les polices dans une couleur fixe. Vous pouvez appliquer un motif de tuile sur la police.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -tile pattern:checkerboard   -annotate +28+68 'Anthony' \
           font_tile.jpg

[IM Output]

Notez que le réglage «[-tile](https://imagemagick.org/command-line-options/#tile)» remplace toute couleur «[-fill](https://imagemagick.org/command-line-options/#fill)» pour l'opérateur «[-draw](https://imagemagick.org/command-line-options/#draw)». Depuis IM v6.3.2, vous pouvez spécifier une image de tuile à l'aide du réglage «[-fill](https://imagemagick.org/command-line-options/#fill)» à la place. Cet usage n'est toutefois pas recommandé, car de nombreux opérateurs utilisant la couleur «[-fill](https://imagemagick.org/command-line-options/#fill)» ne comprennent pas une image de tuilage et se rabattent sur 'black' à la place.
L'image de tuilage peut être décalée par rapport à l'origine de l'image de fond en spécifiant un réglage «[-origin](https://imagemagick.org/command-line-options/#origin)», AVANT de définir l'image «[-tile](https://imagemagick.org/command-line-options/#tile)». L'image est décalée circulairement de la quantité indiquée lors de son affectation comme tuile de remplissage. Police en dégradé : La tuile utilisée n'a pas non plus besoin d'être petite ; elle peut avoir la taille de tout le canevas.
   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -tile gradient:   -annotate +28+68 'Anthony' \
           font_gradient.jpg

[IM Output]

Police à l'envers :

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill Navy     -annotate 180x180+300+35 'Anthony' \
           font_upsidedown.jpg

[IM Output]

Ombre dure : En dessinant la police deux fois avec un décalage, vous pouvez créer un effet d'ombre « dure » simple.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill black -draw "text 28,68 'Anthony'" \
           -fill white -draw "text 25,65 'Anthony'" \
           font_shadow.jpg

[IM Output]

Ombre cisaillée : Comme l'opérateur de dessin de police «[-annotate](https://imagemagick.org/command-line-options/#annotate)» peut faire pivoter la dimension verticale indépendamment de la dimension horizontale, vous pouvez spécifier une rotation biscornue de « travers » (slewing) ou de « cisaillement » (shearing) de la police. C'est idéal pour créer des ombres étranges, ou pour fabriquer votre propre police italique ou inclinée.

   magick -size 320x115 xc:lightblue  -font Candice -pointsize 72 \
           -fill Navy      -annotate 0x0+12+55   'Anthony' \
           -fill RoyalBlue -annotate 0x130+25+80 'Anthony' \
           font_slewed.jpg

[IM Output]

Pour voir un tableau résumant les effets des rotations de texte, consultez l'option d'annotation de texte. Bien sûr, la police Candice n'est pas idéale pour montrer cet effet, et d'autres détails peuvent être nécessaires pour rendre le résultat plus proche d'un aspect 3D. Par exemple, flouter l'ombre selon la distance. Police inclinée : Vous pouvez aussi utiliser «[-draw](https://imagemagick.org/command-line-options/#draw)» pour incliner votre police, même si c'est un peu plus délicat, car cela implique des actions MVG (Magick Vector Graphics) supplémentaires pour déformer la surface de dessin. Comme la surface est déformée, il est judicieux de fixer d'abord l'emplacement de la police à l'aide de 'translate' avant de la déformer.

   magick -size 320x100 xc:lightblue  -font Candice -pointsize 72 \
           -fill Navy -draw "translate 28,68  skewX -20  text 0,0 'Anthony'" \
           font_slanted.jpg

[IM Output]

Pour voir un tableau résumant les effets des rotations de texte, consultez l'option d'annotation de texte. Bien sûr, la police Candice n'est pas idéale pour montrer cet effet, et d'autres détails peuvent être nécessaires pour rendre le résultat plus proche d'un aspect 3D. Si vous trouvez quelque chose d'intéressant, transmettez-le-moi, afin qu'on puisse le partager avec le reste du monde. Les opérations «[-annotate](https://imagemagick.org/command-line-options/#annotate)» et «[-draw](https://imagemagick.org/command-line-options/#draw) skew?» font en réalité pivoter les axes X et Y de la surface de dessin. C'est différent de l'effet obtenu en utilisant «[-shear](https://imagemagick.org/command-line-options/#shear)» sur une image existante, qui allonge l'axe cisaillé de l'image, si bien que la hauteur (ou la largeur) de l'image ne change pas du fait de l'opération.
Police en tampon : En dessinant la police trois fois, dans des couleurs plus foncée, plus claire et d'origine, vous pouvez créer un creux semblable à un tampon.
   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill black     -annotate +24+64 'Anthony' \
           -fill white     -annotate +26+66 'Anthony' \
           -fill lightblue -annotate +25+65 'Anthony' \
           font_stamp.jpg

[IM Output]

Remarquez comment le dernier 'draw' de la police efface la partie centrale de celle-ci. Cela n'est possible que sur un fond de couleur unie. Consultez Utiliser une image de masque pour voir comment employer cette technique sur un fond quelconque qui n'est pas d'une couleur unie. Si vous permutez les deux couleurs, vous obtiendrez bien sûr une police en relief, plutôt qu'une police en creux. Extrudée ou police en bloc 3D : peut être générée en répétant la police plusieurs fois.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill gray -annotate +29+69 'Anthony' \
                      -annotate +28+68 'Anthony' \
                      -annotate +27+67 'Anthony' \
                      -annotate +26+66 'Anthony' \
                      -annotate +25+65 'Anthony' \
                      -annotate +24+64 'Anthony' \
           -fill navy -annotate +23+63 'Anthony' \
           font_extrude.jpg

[IM Output]

Notez qu'il ne s'agit PAS d'une simple ombre, mais d'un véritable épaississement de la police dessinée. C'est très répétitif et cela peut s'appliquer à n'importe quelle image « en forme ». Pour un autre exemple de cette technique, consultez Ajouter de l'épaisseur à une vignette.
Police avec contour : Nous pouvons créer une police avec contour en dessinant plusieurs fois avec de petits décalages de position.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill black  -annotate +24+64 'Anthony' \
                        -annotate +26+64 'Anthony' \
                        -annotate +26+66 'Anthony' \
                        -annotate +24+66 'Anthony' \
           -fill white  -annotate +25+65 'Anthony' \
           font_outlined.jpg

[IM Output]

Comme c'est également très répétitif, ce n'est pas une bonne solution de contour. Puisqu'ImageMagick vous permet de dessiner le contour de la police en réglant «[-stroke](https://imagemagick.org/command-line-options/#stroke)», de bien meilleures solutions existent (voir les polices avec trait ci-dessous). Malgré tout, de multiples redessins de ce genre, pour générer un contour, peuvent être très utiles avec des images de clip-art déjà préparées, comme on en trouve partout sur Internet. C'est aussi une technique utile pour d'autres bibliothèques et programmes graphiques (comme «GD» de «PHP», etc.) où le réglage «[-stroke](https://imagemagick.org/command-line-options/#stroke)» n'est pas disponible. Une autre raison de présenter ce style de contour, c'est que le résultat peut être meilleur lorsqu'on contoure une police comportant des pointes très aiguës. Par exemple, nous dessinons ici la police 12 fois pour faire ressortir les pointes aiguës de la police. Le contour a également été dessiné un peu plus épais ici.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
            -draw "fill black text 27,67 'Anthony' \
                              text 25,68 'Anthony' \
                              text 23,67 'Anthony' \
                              text 22,65 'Anthony' \
                              text 23,63 'Anthony' \
                              text 25,62 'Anthony' \
                              text 27,63 'Anthony' \
                              text 28,65 'Anthony' \
                   fill white text 25,65 'Anthony' " \
           font_outlined_12.jpg

[IM Output]

Vous remarquerez aussi que la couleur de dessin -fill» peut être changée à l'intérieur de l'argument «[-draw](https://imagemagick.org/command-line-options/#draw)». Contour multicolore : L'autre raison pour laquelle cette technique est utile, c'est que vous n'êtes pas limité à une seule couleur de contour pour dessiner la police. En redessinant la police 12 fois dans 5 couleurs différentes selon une séquence très soigneusement conçue, vous pouvez créer une police « en relief » colorée, avec un léger lissage des couleurs sur les bords.

   magick -size 320x100 xc:lightblue \
           -font Candice -pointsize 72  -gravity center \
           -draw "fill navy         text  2,2  'Anthony' \
                  fill navy         text  0,3  'Anthony' \
                  fill navy         text  3,0  'Anthony' \
                  fill dodgerblue   text  0,2  'Anthony' \
                  fill dodgerblue   text  2,0  'Anthony' \
                  fill dodgerblue   text -2,2  'Anthony' \
                  fill dodgerblue   text  2,-2 'Anthony' \
                  fill lavender     text -2,-2 'Anthony' \
                  fill lavender     text  0,-3 'Anthony' \
                  fill lavender     text -3,0  'Anthony' \
                  fill skyblue      text  0,-2 'Anthony' \
                  fill skyblue      text -2,0  'Anthony' \
                  fill blue         text  0,0  'Anthony' " \
           font_colourful.jpg

[IM Output]

Il existe de meilleures méthodes pour créer une police en relief de ce genre, mais celle-ci fonctionne, est simple, et n'utilise que quelques couleurs, plutôt que toute une gamme de couleurs. Police à contour (trait) : Le réglage «[-stroke](https://imagemagick.org/command-line-options/#stroke)» vous permet de dessiner directement un contour de la police. Normalement, la couleur du trait est réglée sur « none », donc elle n'est pas utilisée. L'épaisseur du trait se règle avec «[-strokewidth](https://imagemagick.org/command-line-options/#strokewidth)», dont la valeur par défaut, bien choisie, est 1.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill white  -stroke black  -annotate +25+65 'Anthony' \
           font_stroke.jpg

[IM Output]

Et voici un exemple avec une épaisseur de trait plus forte, de 3.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill white -stroke black -strokewidth 3 \
           -annotate +25+65 'Anthony'        font_stroke_3.jpg

[IM Output]

Remarquez comment la couleur du trait ronge non seulement l'extérieur de la police, mais aussi l'intérieur. Pour plus de détails, consultez les résultats de mes options Stroke et Stroke Width.
Trait épais : En redessinant à nouveau la police une seconde fois, mais sans le trait activé, les parties internes des lignes sont supprimées, ce qui crée une police à contour épais plus agréable.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 -fill white \
           -stroke black -strokewidth 5 -annotate +25+65 'Anthony' \
           -stroke none                 -annotate +25+65 'Anthony' \
           font_stroke_thick.jpg

[IM Output]

L'utilisation du réglage -stroke» est poussée encore plus loin dans les options Stroke et StrokeWidth, où cet aspect des opérateurs de dessin est exploré plus en profondeur. Trait fin : En désactivant la couleur de remplissage, vous pouvez ne laisser que le contour de la police.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill none  -stroke black   -annotate +25+65 'Anthony' \
           font_stroke_thin.jpg

[IM Output]

Double contour : En redessinant avec plusieurs épaisseurs de trait, vous pouvez générer un double contour ! Le premier dessin peut utiliser n'importe quelle couleur de remplissage pour remplir l'intérieur de la police, ou être laissé sur none comme nous l'avons fait ici pour ne pas toucher au fond. En revanche, le dernier dessin de police doit être effectué avec un réglage de remplissage « none », sinon cela ne fonctionnera pas.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
        -fill none  -stroke black  -strokewidth 3  -annotate +25+65 'Anthony' \
        -fill none  -stroke white  -strokewidth 1  -annotate +25+65 'Anthony' \
        font_stroke_double.jpg

[IM Output]

Contrairement à la « police en tampon » précédente, ce qui précède n'a pas nécessité d'effacer la partie centrale de la police. Ainsi, cela fonctionnera sur n'importe quel fond sans complication. Police psychédélique : De façon similaire, en réduisant lentement l'épaisseur du trait tout en permutant les couleurs, un effet de contour psychédélique peut se générer facilement.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 -fill white \
           -stroke black -strokewidth 25 -annotate +25+65 'Anthony' \
           -stroke white -strokewidth 20 -annotate +25+65 'Anthony' \
           -stroke black -strokewidth 15 -annotate +25+65 'Anthony' \
           -stroke white -strokewidth 10 -annotate +25+65 'Anthony' \
           -stroke black -strokewidth  5 -annotate +25+65 'Anthony' \
           -stroke none                  -annotate +25+65 'Anthony' \
           font_psychedelic.jpg

[IM Output]

Vous pouvez le rendre encore plus psychédélique en utilisant des couleurs qui jurent, différentes épaisseurs de trait, ou même en déplaçant un peu la position de la police. Expérimentez et voyez ce que vous pouvez trouver. Effet ballon : Ici, j'ai fait exactement la même chose que pour la « police à trait épais » ci-dessus, mais par pur accident j'ai utilisé une couleur de trait blanche en redessinant la police. Cela a produit un agrandissement intéressant de la police, avec un contour épais. La police « bouffie » donne l'impression d'avoir été gonflée comme un ballon. Cela montre bien qu'il est payant d'expérimenter pour voir ce qu'on peut découvrir.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
       -fill black  -stroke black  -strokewidth 5  -annotate +25+65 'Anthony' \
       -fill white  -stroke white  -strokewidth 1  -annotate +25+65 'Anthony' \
       font_balloon.jpg

[IM Output]

Caractères joints : En utilisant un petit réglage négatif de crénage de l'espacement des caractères (ajouté à IM v6.4.7-10) et en dessinant la police deux fois (comme dans l'exemple précédent), vous pouvez faire en sorte que tous les caractères d'une police « épaisse » se rejoignent, produisant ainsi une variation intéressante.

  magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
          -kerning -6  -strokewidth 4 -fill white \
          -stroke black   -annotate +28+68 Anthony \
          -stroke none    -annotate +28+68 Anthony \
       font_joined.jpg

[IM Output]

Caractères chevauchés : Une variante consiste toutefois à dessiner chaque caractère séparément de sorte que chaque caractère se superpose au-dessus des précédents.

  magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
          -stroke black -strokewidth 4 -fill white \
          -stroke black -annotate  +28+68 A  -stroke none -annotate  +28+68 A \
          -stroke black -annotate  +90+68 n  -stroke none -annotate  +90+68 n \
          -stroke black -annotate +120+68 t  -stroke none -annotate +120+68 t \
          -stroke black -annotate +138+68 h  -stroke none -annotate +138+68 h \
          -stroke black -annotate +168+68 o  -stroke none -annotate +168+68 o \
          -stroke black -annotate +193+68 n  -stroke none -annotate +193+68 n \
          -stroke black -annotate +223+68 y  -stroke none -annotate +223+68 y \
          font_overlapped.jpg

[IM Output]

Cela vous oblige toutefois à déterminer (manuellement ou automatiquement à l'aide d'un script) la position appropriée de chaque caractère. La largeur naturelle de chaque caractère peut être déterminée en générant des étiquettes de chaque caractère sans aucun réglage «[-strokewidth](https://imagemagick.org/command-line-options/#strokewitdh)». Consultez Déterminer les métriques de police pour des exemples. Notez que, contrairement à l'utilisation du réglage «[-kerning](https://imagemagick.org/command-line-options/#kerning)» (exemple précédent), la position de chaque caractère ci-dessus a été ajustée artistiquement de quantités différentes plutôt que d'une simple quantité fixe. Par exemple, seulement un léger chevauchement entre le 't' et le 'h', mais un bien plus grand recouvrement entre les caractères 'n' et 'y'. Caractères décalés aléatoirement : si vous allez jusqu'à dessiner des caractères individuels (chevauchés ou non), vous pouvez les placer selon un motif « désordonné » ou aléatoire, en particulier avec des décalages haut-bas variés. Vous pouvez même pousser cela à l'extrême pour générer un effet spécial tel que…

  magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
          -stroke black -strokewidth 4 -fill white \
          -stroke black -annotate  +26+80 A  -stroke none -annotate  +26+80 A \
          -stroke black -annotate  +95+63 n  -stroke none -annotate  +95+63 n \
          -stroke black -annotate +133+54 t  -stroke none -annotate +133+54 t \
          -stroke black -annotate +156+67 h  -stroke none -annotate +156+67 h \
          -stroke black -annotate +193+59 o  -stroke none -annotate +193+59 o \
          -stroke black -annotate +225+59 n  -stroke none -annotate +225+59 n \
          -stroke black -annotate +266+54 y  -stroke none -annotate +266+54 y \
          font_jittered.jpg

[IM Output]

Police floue : Un simple étalement de la couleur de la police à l'aide de l'opérateur «[-blur](https://imagemagick.org/command-line-options/#blur)». Cet opérateur vous permet de prendre une image et de l'étaler dans toutes les directions. Cela vous permet de générer des ombres au rendu plus doux, ou des effets de type peinture en bombe. Les exemples suivants montrent les effets que vous pouvez obtenir.

  magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
          -fill navy  -annotate +25+65 'Anthony' \
          -blur 0x3   font_fuzzy.jpg

[IM Output]

Notez que le flou s'applique à TOUTE l'image au moment où l'opérateur est donné. Si vous voulez flouter une image existante, vous devrez dessiner la police séparément (sur un fond transparent), puis la superposer sur l'image de fond. L'opérateur «[-blur](https://imagemagick.org/command-line-options/#blur)» (ou «[-gaussian](https://imagemagick.org/command-line-options/#gaussian)») modifie une zone bien plus grande que vous ne le soupçonnez peut-être. Si votre canevas de fond n'est pas assez grand, vous pouvez obtenir une erreur de ces opérateurs. Si cela arrive, ajoutez de l'espace supplémentaire à l'image, par exemple avec «[-border](https://imagemagick.org/command-line-options/#border)», ou ajoutez une limite au rayon de travail (premier argument) de l'opérateur. De plus, le floutage de l'image rend généralement l'utilisation ultérieure de «[-trim](https://imagemagick.org/command-line-options/#trim)» assez inutile. Un rognage manuel, ou d'autres ajustements, peuvent être nécessaires chaque fois que vous utilisez le floutage sur une image.
Ombre floue : Utilisez la police floue comme décalage pour une ombre douce. Notez que nous avons aussi utilisé une valeur d'étalement plus grande.
  magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
          -annotate +30+70 'Anthony'   -blur 0x4 \
          -fill white  -stroke black  -annotate +25+65 'Anthony' \
          font_shadow_fuzzy.jpg

[IM Output]

Ombre douce : L'opérateur «[-shadow](https://imagemagick.org/command-line-options/#shadow)» vous permet non seulement de générer et de positionner des ombres douces et floues pour des images contenant de la transparence, mais aussi d'utiliser n'importe quelle couleur et de définir un niveau général de transparence.

  magick -size 300x100 xc:none -font Candice -pointsize 72 \
          -fill white  -stroke black  -annotate +25+65 'Anthony' \
          \( +clone -background navy  -shadow 70x4+5+5 \) +swap \
          -background lightblue -flatten  -trim +repage  font_shadow_soft.jpg

[IM Output]

Pour plus d'informations sur l'opérateur «[-shadow](https://imagemagick.org/command-line-options/#shadow)», consultez Générer des ombres. Depuis IM v6.3.1, la commande «[montage](montage.html)» peut aussi générer des ombres douces « épousant la forme » d'images contenant de la transparence. Cela signifie que vous pouvez très facilement ombrer une image «[label:](text.html#label)».

  montage -background none -fill white -font Candice \
          -pointsize 72 label:'Anthony' +set label \
          -shadow  -background lightblue -geometry +5+5 \
          font_montage_shadow.jpg

[IM Output]

Vous n'avez cependant aucun contrôle sur le décalage, la couleur ou la quantité de flou de l'ombre de montage (pour l'instant). Contour doux : utilisez la police floue comme bordure de contour. Cela revient à utiliser la police originale comme masque pour un pistolet à peinture.

  magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
          -annotate +25+65 'Anthony'    -blur 0x5 \
          -fill white  -annotate +25+65 'Anthony'   font_outline_soft.jpg

[IM Output]

Notez que le bord est très clair, car non seulement la couleur noire s'étale vers l'extérieur, mais la couleur de fond s'étale vers l'intérieur, ce qui rend le bord seulement sombre à 50 %. Une façon de corriger cela est d'utiliser un contour d'ombre, avec un ajustement de niveau pour corriger cette clarté, bien que cela fasse appel à des techniques de traitement d'image très avancées. Contour doux plus dense : Une autre façon de corriger la clarté du contour doux est de flouter une police dotée d'un large contour de trait. Cela déplace effectivement le point de flou à 50 % plus loin du bord de la police. Cela permettra aussi d'utiliser une valeur de flou encore plus grande, laissant la couleur noire s'étaler davantage.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -stroke black -strokewidth 8 -annotate +25+65 'Anthony' -blur 0x8 \
           -fill white   -stroke none   -annotate +25+65 'Anthony' \
           font_denser_soft_outline.jpg

[IM Output]

Pour un exemple pratique de cette méthode, consultez les exemples générés dans Ajouter des étiquettes d'image aux vignettes et le dernier exemple dans Annoter par-dessus des images.
Ombre floutée selon la distance : Avec l'introduction du mappage de flou variable, vous pouvez désormais flouter une ombre de sorte qu'elle devienne plus floue à mesure qu'augmente sa distance apparente à l'objet qui la projette. Par exemple, j'ai pris ici la police à ombre cisaillée et flouté l'ombre de sorte qu'elle soit nette en haut, et plus floue en bas.

   magick -size 320x40 xc:lightblue  -font Candice -pointsize 72 \
           -fill RoyalBlue -annotate 0x125+20+0 'Anthony' \
           \( -size 320x45 gradient:black -append \) \
           -compose Blur -set option:compose:args 20x5+45 -composite \
           \( -size 320x60 xc:lightblue \
              -fill Navy    -annotate 0x0+20+59   'Anthony' \) \
           +swap -append   font_var_blur.jpg

[IM Output]

Notez que je n'ai pas simplement utilisé un flou circulaire, car la lumière tombant sur une surface inclinée forme des ellipses, pas des cercles. Le flou doit donc lui aussi former des ellipses. Fondamentalement, j'ai utilisé une variante de flou elliptique pour obtenir cet effet. Un dernier point : utiliser les arguments d'angle d'annotate pour créer le texte cisaillé (voir Utilisation des arguments d'Annotate) n'est probablement pas la meilleure façon de générer l'ombre 3D initiale de ce genre. Fondamentalement, cela ne peut pas raccourcir ni allonger l'ombre, comme le ferait une vraie ombre, car cela n'effectue qu'un cisaillement par rotation. Une meilleure méthode consiste à utiliser une distorsion affine à trois points, qui vous donne un meilleur contrôle sur le placement de l'ombre (voir Ombres 3D, à l'aide de cisaillements affines). Bien sûr, vous aurez toujours besoin de la technique du flou variable pour que le rendu soit correct.
Police à impression sale : Les pixels sont légèrement étalés, puis floutés et seuillés plusieurs fois pour lisser le contour final. Le résultat est une police qui semble avoir été imprimée sur du papier journal grossier.

  magick -size 320x100 xc: \
          -font Candice -pointsize 72 -annotate +25+65 'Anthony' \
          -spread 1 -blur 0x1 -threshold 50% -blur 0x1 font_dirty_print.jpg

[IM Output]

Cette police provient de la discussion How to dirty a font qui inclut d'autres méthodes plus complexes.
Police biseautée : L'opérateur Shade peut servir à générer une très belle police 3D avec un bord biseauté et lissé en courbe.

    magick -size 320x100 xc:black -font Candice -pointsize 72 \
              -fill white   -annotate +25+65 'Anthony' \
              -shade 140x45  font_beveled.jpg

[IM Output]

C'est bien plus joli que la police en tampon, mais shade ne génère que des images en niveaux de gris. En revanche, il existe de nombreuses méthodes qui peuvent remplacer les niveaux de gris du résultat ci-dessus par les couleurs de votre choix. Le plus gros problème lorsqu'on utilise shade pour « biseauter » une police, c'est que l'épaisseur du biseau n'est pas facilement ajustable. Elle est fondamentalement fixée à une épaisseur d'environ 5 pixels, quelle que soit la taille de police utilisée.
Police conique : En utilisant la nouvelle méthode de distance de la morphologie (depuis IM v6.6.2) combinée à l'opérateur Shade, vous pouvez faire en sorte que toute la police ressemble à une crête de montagne en trois dimensions. Cela nécessite un traitement particulier des pixels d'anticrénelage, comme dans Distance avec une forme anticrénelée, mais le résultat est une police en forme de montagne conique.

  magick -size 320x100 xc:black -font Candice -pointsize 72 \
          -fill white   -annotate +25+65 'Anthony' \
          -gamma 2  +level 0,1000 -white-threshold 999 \
          -morphology Distance Euclidean:4,1000 -auto-level \
          -shade 135x30 -auto-level +level 10,90% font_conic.jpg

[IM Output]

En ajoutant un peu de «[-adaptive-blur](https://imagemagick.org/command-line-options/#adaptive-blur)», vous pouvez lisser le résultat pour donner à la police obtenue un aspect meilleur et étrangement brillant.

  magick -size 320x100 xc:black -font Candice -pointsize 72 \
          -fill white   -annotate +25+65 'Anthony' \
          -gamma 2  +level 0,1000 -white-threshold 999 \
          -morphology Distance Euclidean:4,1000 -auto-level \
          -shade 135x30 -auto-level +level 10,90% \
          -adaptive-blur 0x2  font_conic_smoothed.jpg

[IM Output]

Déplacer le «[-adaptive-blur](https://imagemagick.org/command-line-options/#adaptive-blur)» avant l'utilisation de Shade floutera les bords, mais pas la crête centrale (le squelette) des formes de la police. Le résultat donne l'impression que des crêtes acérées s'enfoncent dans une feuille de caoutchouc.

  magick -size 320x100 xc:black -font Candice -pointsize 72 \
          -fill white   -annotate +25+65 'Anthony' \
          -gamma 2  +level 0,1000 -white-threshold 999 \
          -morphology Distance Euclidean:4,1000 -auto-level \
          -adaptive-blur 0x2 \
          -shade 135x30 -auto-level +level 10,90%  font_conic_ridge.jpg

[IM Output]

Utiliser un noyau de distance différent, tel que Chebyshev, fonctionne mieux avec des polices d'aspect plus régulier, comme la famille de polices Arial.

  magick -size 320x100 xc:black -font ArialBk -pointsize 70 \
          -fill white   -annotate +5+70 'Anthony' \
          -gamma 2  +level 0,1000 -white-threshold 999 \
          -morphology Distance Chebyshev:1,1000 -auto-level \
          -shade 135x30 -auto-level +level 10,90% font_chebyshev.jpg

[IM Output]

Police à biseau intérieur : Limiter la distance en écrêtant la fonction de distance ne biseautera que les bords de la forme.

  magick -size 320x100 xc:black -font Candice -pointsize 72 \
          -fill white   -annotate +25+65 'Anthony' \
          -gamma 2 +level 0,1000 -white-threshold 999 \
          -morphology Distance Euclidean:4,1000  -level 0,5000 \
          -shade 135x30 -auto-level +level 10,90% font_inner_bevel.jpg

[IM Output]

Police en arche : L'opérateur «[-wave](https://imagemagick.org/command-line-options/#wave)» (voir Déplacement par onde sinusoïdale pour les détails) décalera les pixels de l'image verticalement, pour former une arche. Les verticales resteront verticales, les caractères étant cisaillés pour produire la courbe.

    magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
    -fill navy  -annotate +25+65 'Anthony' \
    -background lightblue -wave -50x640 -crop x110+0+10 \
    font_wavy.jpg

[IM Output]

Notez que pour utiliser «[-wave](https://imagemagick.org/command-line-options/#wave)» afin de créer une arche, vous devez utiliser une « longueur d'onde » qui vaut le double de la largeur de l'image (2 × 320, soit 640 pixels). De plus, comme «[-wave](https://imagemagick.org/command-line-options/#wave)» ajoute de l'espace supplémentaire à l'image selon la quantité d'arche, cet espace doit ensuite être rogné ou recadré. C'est une façon simple, rapide mais efficace de créer une arche de texte. Police en arc : L'opérateur de distorsion générale fournit aussi d'autres méthodes de déformation de texte/image. La méthode '[Arc](distorts.html#arc)', par exemple, courbera une police en un véritable arc circulaire, plutôt que l'« arche » décalée verticalement de l'exemple précédent.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill navy -annotate +25+65 'Anthony' \
           -distort Arc 120  -trim +repage \
           -bordercolor lightblue -border 10  font_arc.jpg

[IM Output]

Police en cercle : Vous pouvez même pousser cela à l'extrême et enrouler le texte en un cercle complet, ou presque complet.

   magick -font Candice -pointsize 32 -background lightblue \
           -fill navy label:"Anthony's IM Examples" \
           -virtual-pixel background  -distort Arc 340 \
           font_circle.jpg

[IM Output]

Consultez Distorsion en arc pour plus d'options et de possibilités. Police en spirale : En ajoutant un peu de rotation pour incliner la police avant de l'enrouler, le cercle peut être converti en spirale.

   magick -font Candice -pointsize 32 -background lightblue \
           -fill navy  label:"Anthony's IM Examples" \
           -rotate 12 -virtual-pixel background -distort Arc 360 \
           -trim -bordercolor lightblue -border 5x5  font_spiral.jpg

[IM Output]

La hauteur du texte (radialement) reste toutefois constante ; elle n'est ni étirée ni compressée à mesure qu'elle se rapproche du centre, ce qui produit une forte distorsion d'aspect des caractères. Vous pourriez résoudre cela en utilisant une distorsion de perspective dans le cadre de la rotation du texte, pour ajuster la hauteur de la police avant d'appliquer la distorsion Arc. Le problème de cette technique est que vous ne pouvez faire qu'un seul tour de spirale, même si, avec plusieurs lignes et en prenant soin d'aligner les lignes, vous pourriez générer plusieurs spirales. Si vous essayez cela, pourriez-vous me renvoyer un exemple ?
Police vibrato : L'opérateur «[-wave](https://imagemagick.org/command-line-options/#wave)» que nous avons utilisé dans la police en arche ci-dessus peut aussi être utilisé à une fréquence plus élevée et une amplitude plus faible pour créer une police vibrante. De plus, en ajoutant quelques opérations de rotation, vous pouvez même faire vibrer la police à l'angle de votre choix !

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill navy  -annotate +25+65 'Anthony' \
           -background lightblue -rotate 85  -wave 2x5   -rotate -85 \
           -gravity center  -crop 320x100+0+0 +repage font_vibrato.jpg

[IM Output]

Pour plus d'informations sur l'utilisation de telles distorsions, consultez la page d'exemples sur la Déformation d'images, et en particulier l'opérateur de distorsion Wave. Police comète : L'un des opérateurs de flou spécialisés, «[-motion-blur](https://imagemagick.org/command-line-options/#motion-blur)», vous permet de créer une queue semblable à celle d'une comète sur les objets d'une image.

   magick -size 340x120 xc:lightblue  -font Candice  -pointsize 72 \
           -fill navy   -annotate +45+95 'Anthony' -motion-blur 0x25+65 \
           -fill black  -annotate +45+95 'Anthony' -motion-blur 0x1+65 \
           font_comet.jpg

[IM Output]

Vous pouvez animer cette police composée en utilisant différentes couleurs pour créer un véritable événement enflammé. Vous pouvez aussi faire bien plus avec les flous spécialisés, mais tout cet aspect d'IM est encore expérimental et la syntaxe de ces opérateurs peut changer dans un proche avenir. Police fumante : en combinant cela avec wave, vous pouvez faire en sorte que la police comète ressemble à de la fumée, à une odeur, ou même à des flammes s'élevant de la police !

   magick -size 320x120 xc:lightblue  -font Candice  -pointsize 72 \
           -fill black  -annotate +25+95 'Anthony'  -motion-blur 0x25+90 \
           -background lightblue -rotate 60  -wave 3x35  -rotate -60 \
           -gravity center  -crop 320x120+0+0 +repage +gravity \
           -fill navy   -annotate +25+95 'Anthony'   font_smoking.jpg

[IM Output]

Avez-vous une transformation intéressante à ajouter à la liste ci-dessus ?


Utiliser une image de masque avec les polices

Dessiner une « police en tampon » sur une image de fond est en réalité bien plus difficile que la plupart des méthodes de génération de polices fantaisistes que j'ai détaillées ci-dessus. La raison en est qu'une partie de la police originale est effacée, ce qui pose problème lorsqu'on la dessine sur un fond qui n'est pas d'une simple couleur unie. Voici l'image de police composée que nous avons générée ci-dessus.

   magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -fill black      -annotate +24+64 'Anthony' \
           -fill white      -annotate +26+66 'Anthony' \
           -fill lightblue  -annotate +25+65 'Anthony' \
           font_stamp.jpg

[IM Output]

Si nous essayons de dessiner la police sur un fond transparent (image au format PNG), en utilisant exactement la même méthode, cela échoue tout simplement…

   magick -size 320x100 xc:transparent -font Candice -pointsize 72 \
           -fill black        -annotate +24+64 'Anthony' \
           -fill white        -annotate +26+66 'Anthony' \
           -fill transparent  -annotate +25+65 'Anthony' \
           trans_stamp.png

[IM Output]

Ce qui s'est passé, c'est que nous avons tenté d'effacer la partie centrale de la police avec la couleur « transparence ». Mais comme vous pouvez le voir, dessiner avec de la transparence ne dessine tout simplement rien ! Le résultat ci-dessus est donc le même que si le dernier opérateur d'« effacement » -annotate» n'avait pas fonctionné du tout. Il existe environ une demi-douzaine de solutions à ce problème. J'en présenterai trois ici, tandis que d'autres sont abordées à divers autres endroits des pages d'exemples d'IM. La plus simple est probablement de ne pas corriger du tout la police ci-dessus, mais d'utiliser un « masque » lorsqu'on la dessine sur l'image de fond, pour indiquer à la commande «magick composite» d'ignorer la section centrale. Une image de masque pour «magick composite» est une image en niveaux de gris, noir pur pour les parties qui seront transparentes, et blanc pur pour toutes les parties que vous voulez complètement visibles (opaques). Toute nuance de gris sera dessinée en semi-transparence, se fondant dans les couleurs de fond en dessous. Or notre image ci-dessus est presque correcte, alors masquons simplement toutes les parties dont nous ne voulons pas. Nous partons d'un fond noir (entièrement transparent), puis nous dessinons en blanc tout ce que nous voulons, et en noir tout ce que nous ne voulons pas.

   magick -size 320x100 xc:black -font Candice -pointsize 72 \
           -fill white   -annotate +24+64 'Anthony' \
           -fill white   -annotate +26+66 'Anthony' \
           -fill black   -annotate +25+65 'Anthony' \
           mask_mask.jpg

[IM Output]

Notez que le masque que nous avons créé n'est pas seulement noir et blanc, mais comporte diverses nuances de gris le long des bords des zones en raison de l'anticrénelage (voir Exemples d'anticrénelage pour les détails). Ces pixels gris rendent les bords de l'image finale plus lisses, et sont très importants, car ils représentent des pixels semi-transparents (visibles seulement à moitié). Maintenant que nous avons un masque, nous pouvons masquer les sections indésirables de l'image. Nous pouvons le faire pendant que nous dessinons (superposons) l'image sur un fond de type plasma. Notez l'ordre des trois arguments d'image (police, fond, puis masque).

  magick -size 320x180 plasma: -shave 0x40 plasma_background.jpg
  magick composite trans_stamp.png   plasma_background.jpg   mask_mask.jpg \
            mask_result.jpg

[IM Output]

Une forme «magick -composite» à trois arguments de ceci est…

  magick plasma_background.jpg  trans_stamp.png  mask_mask.jpg \
          -composite  mask_result2.jpg

[IM Output]

Bon résultat, mais il nous faut maintenant deux images pour dessiner la police composée. Il serait préférable de n'avoir besoin que d'une seule image, avec le masque intégré directement dans l'image elle-même. Fondamentalement, nous voulons remplacer entièrement le canal alpha de notre image de police par une copie du masque d'image de police que nous avons créé. Autrement dit, nous fusionnons l'image de police (qui fournit les couleurs des pixels) directement avec son masque (qui fournit le canal alpha de l'image). Le réglage de composition alpha «[CopyOpacity](compose.html#copyopacity)» effectue ce remplacement. Notez l'ordre des arguments dans la commande. Dans ce cas, la police elle-même est l'image de fond, tandis que le masque est l'image superposée sur l'image de fond.

  magick composite -compose CopyOpacity   mask_mask.jpg   trans_stamp.png \
            trans_stamp3.png
  magick composite trans_stamp3.png   plasma_background.jpg  mask_result3.jpg

[IM Output] [IM Output]

Le résultat de tout cela est que la partie centrale de la police a enfin été correctement effacée en la rendant entièrement transparente. L'image unique obtenue peut ainsi être superposée facilement sur n'importe quel fond, sans avoir besoin d'aucune image de masque supplémentaire. Réduire un grand tampon de police transparent comme celui ci-dessus crée un très bon filigrane. La réduction rendra le contour moins opaque et moins prononcé, exactement comme un filigrane devrait l'être. Les deux couleurs garantissent aussi que la marque est visible de façon fiable aussi bien sur des images très claires que très sombres.
Pour plus d'informations sur l'utilisation des masques d'image, consultez Édition des masques d'image.

Traitement avancé des polices

En combinant les techniques ci-dessus, avec des couleurs appropriées et d'autres polices fantaisistes disponibles, vous pouvez créer des effets fantastiques, qui ont souvent un aspect complètement différent des techniques originales montrées ci-dessus.

Polices plus complexes — un exemple

Par exemple, nous générons ici un texte très complexe et coloré.

  magick -font Times-Bold -pointsize 64 \
                     -background none  label:"Colorful Arc" \
          \( +clone -sparse-color Barycentric '0,%h blue %w,0 red' \
             \) -compose In -composite \
          -virtual-pixel transparent -distort arc 120 \
          \( +clone -background black -shadow 100x2+4+4 \
             \) +swap -background white -compose over -layers merge +repage \
          colorful_arc.jpg

[IM Output]

La commande complexe ci-dessus est disposée de façon à effectuer chaque étape majeure de traitement d'image sur des lignes distinctes. D'abord, l'image de texte est créée. Ensuite, un dégradé à deux points est généré comme superposition de couleur. D'autres méthodes de coloration, telles que les images aléatoires floutées, le plasma fractal, ou les canevas en tuiles, auraient aussi pu être utilisées. La superposition de couleur sert alors à colorer le texte à l'aide de l'opérateur de composition alpha In. Le texte coloré est ensuite déformé à l'aide d'une distorsion en arc, et enfin une ombre est générée et fusionnée par calques sous le texte. Cette dernière méthode supprime aussi la transparence, la remplaçant par du blanc, avant l'enregistrement en JPEG. Pour plus d'informations sur un tel traitement d'image complexe, consultez Traitement d'image complexe et débogage.

Enseigne au néon

Voici un autre exemple simple. En utilisant une police à contour doux sur un fond sombre, mais en utilisant toutes les mêmes couleurs, et une police appropriée, vous pouvez générer un simple effet d'« enseigne au néon »…

  magick -fill dodgerblue -background black -font Anaconda -pointsize 72 \
          label:' I M  Examples ' -bordercolor black -border 30x30 \
          \( +clone -blur 0x25 -level 0%,50% \) \
          -compose screen -composite    neon_sign.gif

[IM Output]

Et avec un peu plus de travail, vous pouvez même l'animer ! Mais je laisse cela en exercice au lecteur. Consultez Exemples IM avancés pour des effets spéciaux tels que les effets « Gel » et les effets « Aqua ». Pour quelques exemples d'autres effets de police que vous pourriez vouloir essayer d'implémenter, consultez XaraXone, Using Contour Tool. IM peut facilement créer des effets de contour comme ceux qui y sont montrés.

Effet métallique

Cet effet est essentiellement un effet d'arrondi et de remplacement par table de correspondance de couleurs (Color Lookup Table). Consultez la discussion Metallic Effect. Exemple fonctionnel par snibgo

# Générer un masque en forme de police d'entrée flouté
# le premier blur-level est un effet d'arrondi ou de « mare »
# le second blur est celui qui importe pour l'effet métallique.
magick -background none -pointsize 160 -font Candice label:" Anthony " \
        -blur 0x5 -channel A -level 40%,60% +channel \
        -blur 0x3    metallic_input.png

# Table de correspondance de couleurs métallique
magick \
  -size 1x1000 gradient:  -gamma 0.9 \
  -function Sinusoid 2.25,0,0.5,0.5 \
  \( gradient:'rgb(100%,100%,80%)-black' -gamma 1 \) \
  +swap \
  -compose Overlay -composite \
  -rotate 90 \
  metallic_clut.png

# Donner à la police floutée un aspect métallique
#  * créer d'abord un dégradé vertical
#  * puis le fusionner avec un dégradé réfléchissant 'shade'
#  * avant d'appliquer la couleur au dégradé obtenu
#  * enfin ajouter une ombre.
magick metallic_input.png -set colorspace RGB \
  \( -clone 0 -alpha off \
     -sparse-color Barycentric "0,0 White  0,%[fx:h-1] Black" \
     -alpha on \
  \) \
  \( -clone 0 -alpha extract -shade 135x45 -auto-gamma -auto-level \
     -alpha on -channel A -level 0%x10% +channel \
  \) \
  -delete 0 -compose Overlay -composite \
  metallic_clut.png -clut  -set colorspace sRGB \
  \
  \( +clone -background navy -shadow 80x2+5+5 \
  \) +swap -background None -compose Over -layers merge \
  \
  -trim +repage metallic.png

[IM Output]