我在Ubuntu 12服务器上使用ImageMagick 6.6.9。我遇到的问题是我的ImageMagick转换命令,我使用shell_exec
函数运行PHP(但也试过exec
),其中包含PHP escapeshellcmd
函数逃脱的字符使用\
这是我的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错误:
convert:选项-thumbnail的无效参数':640x88> @ error / convert.c / ConvertImageCommand / 2770。
有谁知道我可以解决这个问题的方法?我已经搜索了ImageMagick文档,当他们确认问题时,他们似乎没有提供任何其他方法来调整图像大小而不使用特殊的unix字符:
唯一缩小标记('>'标志)是UNIX Shell和Window批处理脚本中的特殊字符,您需要转义该字符(在shell中使用反斜杠'>','^> ;'在windows批处理中)。它也是HTML网页中的特殊内容,因此PHP脚本也可能需要一些特殊处理。
非常感谢提前。
答案 0 :(得分:0)
事实证明,我在"
尺寸选项周围有额外的-thumbnail "640x88\>"
(引号)。作为参考,正确的转义转换命令应该是:
/usr/bin/convert "/Users/rich/Sites/example/1234.JPG" -quality 85 -auto-orient -thumbnail 640x88\> "/Users/rich/Sites/example/1234-thumb.jpg"