oui: dessiner le même texte sur votre image - peut-être par la sortie tuyauterie de votre commande à une autre convertir
convert -background none -fill white -pointsize 100 -stroke red \
-strokewidth 20 label:text png:- \
| convert -fill white -pointsize 100 -stroke none \
-draw 'text 10,82 "text"' - stroke.png
l'astuce consiste à placer correctement la deuxième chaîne. La position x est la moitié de la course, mais la position y semble dépendre de la police et du point. Mon approche était à la première place les deux chaînes sur l'autre lorsque strokeWidth a été fixé à 0:
convert -background none -fill white -pointsize 100 -stroke red \
-strokewidth 0 label:text png:- \
| convert -fill white -pointsize 100 -stroke none \
-draw 'text 0,72 "text"' - stroke.png
alors vous devez ajouter la moitié du strokeWidth à cette position y aussi bien.
un peu d'essai et d'erreur pour obtenir la position y correcte, mais il semble fonctionner pour toute chaîne.
== == modifier
bien sûr, on n'a pas besoin de faire d'essais et d'erreurs. Mais à la place, nous pouvons utiliser la puissance d'ImageMagick. Il suffit de réaliser les étapes suivantes (dans cet exemple de Bash):
#!/bin/bash
# read text from command line (or use "Test Text")
text=${1:-"Test Text"}
# strokewidth
sw=20
# pointsize
ps=120
# font
font=Arial
# result file
result="stroke.png"
# do some calc
sw_half=$(expr $sw/2)
convert -background none -font $font -fill white -pointsize $ps -stroke red -strokewidth $sw label:"$text" $result
convert -background none -font $font -fill white -pointsize $ps -stroke none label:"$text" png:- | composite -geometry +${sw_half}+${sw_half} - $result $result
Vous pouvez obtenir la liste des polices disponibles sur votre système par
convert -list font
L'idée est la même chose que ci-dessus: dessiner le texte deux fois et dessinez l'un sur l'autre en utilisant un décalage de la moitié de la course.
Les résultats ressemblent toutes les suivantes
J'ai lu votre question plusieurs fois (et la réponse) et je n'ai toujours aucune idée de ce que vous voulez dire. Pouvez-vous essayer et mieux expliquer ce qu'un * "coup de sortie" * est s'il vous plaît? Et qu'est-ce qui ne va pas avec la réponse de Leu? –
OK, mon objectif est, si j'ajoute un trait au texte, je veux voir le texte original, et la bordure seulement en dehors du texte. Donc, la bordure devrait laisser le texte original entier visible, seulement ajouter la bordure. – kree