2012-09-01 11 views
5

Jestem nowicjuszem w ImageMagick - Czytałem trochę dokumentacji i teraz dotarłem do pierwszej rzeczywistej sytuacji. Mam obraz (300 * 500) i mam tekst, który powinien być dopasowany najlepiej jak to możliwe (największy możliwy) w 20% najwyższej części obrazu. Zatem tekst musi być w prostokącie 300 * 100, reszta obrazu pozostaje taka sama. Czy to możliwe z magią obrazu? Co to jest najlepszy sposób na zrobienie tego?ImageMagick - Tekst w prostokącie

Szukam linii poleceń lub rozwiązania rozszerzenia php. Proste ilustration poniżej

Simple ilustration

Odpowiedz

7

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:

output example 1   output example 2

(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.

Powiązane problemy