1

我在 Ubuntu 12 服务器上使用 ImageMagick 6.6.9。我遇到的问题是我的 ImageMagick 转换命令,我使用该shell_exec函数通过 PHP 运行(但也尝试过exec),其中包含 PHPescapeshellcmd函数转义的字符\

这是我的PHP代码:

$result = exec(escapeshellcmd($convertString));

这是我的示例转换命令:

/usr/bin/convert "/Users/rich/Sites/example/1234.JPG" -quality 85 -auto-orient -thumbnail "640x88>" "/Users/rich/Sites/example/1234-thumb.jpg"

最后是运行后的转换命令escapeshellcmd

/usr/bin/convert "/Users/rich/Sites/example/1234.JPG" -quality 85 -auto-orient -thumbnail "640x88\>" "/Users/rich/Sites/example/1234-thumb.jpg"

问题是转义\>字符会导致 ImageMagick 错误:

转换:选项 -thumbnail' 的无效参数:640x88> @error/convert.c/ConvertImageCommand/2770。

有谁知道我可以解决这个问题的方法?我已经浏览了 ImageMagick 文档,虽然他们承认了这个问题,但他们似乎没有提供任何其他方式来调整图像大小而不使用特殊的 unix 字符:

Only Shrink Flag ('>' flag) 是 UNIX Shell 和 Window 批处理脚本中的特殊字符,您需要转义该字符(在 shell 中使用反斜杠 '>',在 windows 批处理中使用 '^>') . 它在 HTML 网页中也很特殊,因此 PHP 脚本也可能需要一些特殊处理。

提前谢谢了。

4

1 回答 1

1

事实证明,我在尺寸选项"周围有额外的(引号) 。-thumbnail "640x88\>"作为参考,正确的转义转换命令应该是:

/usr/bin/convert "/Users/rich/Sites/example/1234.JPG" -quality 85 -auto-orient -thumbnail 640x88\> "/Users/rich/Sites/example/1234-thumb.jpg"

于 2013-01-23T10:25:55.857 回答