Ponieważ nie przedstawił obraz próbki do testowania i stosowania jakiś tekst, stworzyłem jeden z następującego polecenia:
convert \
http://i.stack.imgur.com/RfJG6.png \
-crop 312x513+579+0 +repage \
so#12231624-right.png
Korzystanie wynikowy obraz jako dane wejściowe, uruchom te trzy polecenia, aby zobaczyć, jak to będzie działać (w systemie Linux lub Mac OS X):
width=$(identify -format %W so#12231624-right.png)
convert \
-background '#0008' \
-gravity center \
-fill white \
-size ${width}x100 \
caption:"This is a sample text to test \
the automatic sizing of fonts by ImageMagick." \
so#12231624-right.png \
+swap \
-gravity north \
-composite \
output1.png
convert \
-background '#0008' \
-gravity center \
-fill white \
-size ${width}x100 \
caption:"This is a even longer sample text. \
It also serves to test if automatic sizing of fonts \
by ImageMagick works as expected: just don't specify \
any fontsize, and let ImageMagick go for the best fit..." \
so#12231624-right.png \
+swap \
-gravity north \
-composite \
output2.png
Powstałe obrazy:
(Wyjście nie pasuje dokładnie swoją daną ramkę - ale to tylko dlatego, że mój plik testowy wciąż ma białe niewypełnione granicę (jako część obrazu) których nie usunąłem ...)
Innymi słowy: po prostu nie zawracaj sobie głowy określeniem rozmiaru czcionki za pomocą -fontsize
. Podaj tylko rozmiar regionu, który powinien zawierać adnotację tekstową. Następnie ImageMagick automatycznie wybierze najlepszy pasujący rozmiar czcionki i użyje go.