ImageMagick creating thumbnail

2019-08-20 02:02发布

here is code which creats animated text using imagemagick..

$label=$_POST["label"];
$cmd = " -background transparent -font $font -pointsize $size label:$label -stroke black -strokewidth 2 ".
"  \( -clone 0 -tile \"" . $image . "[0]\" -stroke black -strokewidth 2 -gravity center -annotate +0+0 $label \) ".

the above code wokrs fine when i enter "1234" in label field ... but it doe not when i type"12 34" it displays only "12" it is not taking "space" in between charcter ...something needs to be done for "label" variable.. not sure how to fix this.. please help me to resolve this...

3条回答
爷、活的狠高调
2楼-- · 2019-08-20 02:52

Use apostrophes, like in example "Labels over Multiple Lines" at http://www.imagemagick.org/Usage/text/#label

$cmd = " -background transparent -font $font -pointsize $size label:'$label' -stroke black -strokewidth 2 ".
查看更多
小情绪 Triste *
3楼-- · 2019-08-20 03:04

Put the entire string in double quotes since spaces are not allowed in command line. In the following i enclosed both usages of $label in double-quotes using the \" escape sequence:

$label=$_POST["label"];
$cmd = " -background transparent -font $font -pointsize $size label:\"$label\" -stroke black -strokewidth 2 ".
"  \( -clone 0 -tile \"" . $image . "[0]\" -stroke black -strokewidth 2 -gravity center -annotate +0+0 \"$label\" \) ".
查看更多
在下西门庆
4楼-- · 2019-08-20 03:04

My post is editted. See what hakre posted, it's a better answer than mine was.

string escapeshellarg ( string $arg )

Should do the trick, plus it allows you to pass a string directly to the shell function treated as a single safe argument

查看更多
登录 后发表回答