0

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

我在用

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

我怎样才能做到这一点并获得正确的结果?

4

1 回答 1

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"); 
于 2012-12-01T09:12:34.157 回答