2012-12-01 2 views
0

두 개의 텍스트를 오버레이하려고합니다 (하나는 크고 다른 색상은 스트로크로 끝납니다). 이미지의 온탑이지만, 결국 나는 엉망인 결과를 얻습니다. 내가이미지의 서로 다른 ontop의 두 텍스트 ontop을 상상해보십시오.

convert front2.jpg 
\(-pointsize 90 -font Helvetica-Narrow-Bold -fill black -background none -stroke black -strokewidth 15 label:"Hello World World" -virtual-pixel transparent -distort arc 160 \) -gravity north -geometry +0+12 -compose over -composite front5.jpg 
\(-pointsize 90 -font Helvetica-Narrow-Bold -fill white -stroke none -background none label:"Hello World World" -virtual-pixel transparent -distort arc 160 \) -gravity north -geometry +0+10 -compose over -composite front5.jpg 

을 사용하고

어떻게이 작업을 수행하고 올바른 결과를 얻을 수 있습니까?

답변

0

나는 당신의 게시물을 잘못 읽었다는 것을 깨달았습니다. 이 예제는 그림자 효과를 만듭니다. 내가하려고하는 것은 무엇이든 나는 일할 수 없다! UPDATE - 스트로크는 작동하지만 내 로컬 설정에서는 작동하지 않습니다. 마지막 예는 뇌졸중이 있습니다.

이 나를 위해 작동하지만 매우 느린

:

exec("convert image.jpg -thumbnail 800x800 temp.png"); 

$cmd = " temp.png \(-pointsize 90 -font Helvetica-Narrow-Bold -fill black -background none label:\"Hello World World\" -virtual-pixel transparent -distort arc 160 \) ". 
" -gravity north -geometry +0+12 -compose over -composite ". 
" \(-pointsize 90 -font Helvetica-Narrow-Bold -fill white -background none label:\"Hello World World\" -virtual-pixel transparent -distort arc 160 \) ". 
" -gravity north -geometry +0+10 -composite "; 

exec("convert $cmd text_circle.png"); 

이 반 시간에 완료되지만 텍스트가 이미지보다 큰 것으로 문제가있다! $ size [0]과 $ size [1]를 줄이기 위해 계산을 수행하면이를 극복 할 수 있습니다.

$size = getimagesize("temp.png"); 
$cmd = " temp.png \(\(-size $size[0]x$size[1] xc:none -fill black -font Helvetica-Narrow-Bold -pointsize 90 -stroke black -strokewidth 4 -gravity north -annotate +0+0 \"Hello World World\" -font Helvetica-Narrow-Bold -fill white -annotate +3+3 \"Hello World World\" \) -virtual-pixel transparent -distort arc 160 \) ". 
" -composite "; 
exec("convert $cmd text_circle1.png"); 
관련 문제