ImageMagick создание миниатюры - PullRequest
0 голосов
/ 06 января 2012

вот код, который создает анимированный текст с помощью 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 \) ".

вышеуказанный код работает нормально, когда я ввожу "1234" в поле метки ... но это не происходит, когда я набираю "12 34"он отображает только" 12 ", он не занимает" пробел "между символами ... что-то нужно сделать для переменной" label "... не уверен, как это исправить .. пожалуйста, помогите мне решить эту проблему ...

Ответы [ 3 ]

0 голосов
/ 06 января 2012

Используйте апострофы, как в примере «Метки над несколькими строками» в http://www.imagemagick.org/Usage/text/#label

$cmd = " -background transparent -font $font -pointsize $size label:'$label' -stroke black -strokewidth 2 ".
0 голосов
/ 06 января 2012

Поместите всю строку в двойные кавычки, так как пробелы в командной строке не допускаются.Далее я заключил оба использования $label в двойные кавычки, используя escape-последовательность \":

$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\" \) ".
0 голосов
/ 06 января 2012

Мой пост отредактирован. Посмотрите, что написал Хакре, это лучший ответ , чем мой.

string escapeshellarg ( string $arg )

Должен помочь, плюс он позволяет вам передавать строку непосредственно в функцию оболочки, которая рассматривается как один безопасный аргумент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...