Imagemagick在图像顶部将两个文本叠加在一起?

时间:2012-12-01 06:04:13

标签: php imagemagick

我试图在图像的顶部叠加两个文本(一个更大,一个不同的颜色,最终会成为笔画),但我得到的结果却是混乱的结果。

我正在使用

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

我该怎么做才能得到正确的结果?

1 个答案:

答案 0 :(得分:0)

我刚刚意识到我错过了你的帖子;这些示例将创建阴影效果。无论我尝试什么,我都无法工作 - 中风! 更新 - 中风将起作用,但不适用于我的本地设置;最后一个例子有中风。

这适合我,但速度很慢:

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");