2013-01-23 60 views
0

我在Ubuntu 12服務器上使用ImageMagick 6.6.9。我的問題是,我的ImageMagick convert命令,這是我通過使用shell_exec功能PHP運行(但也嘗試exec),在它的字符將PHP escapeshellcmd功能與\PHP escapeshellcmd()使用'>'符號打破ImageMagick轉換命令

這裏逃脫是我的PHP代碼:

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

這裏是我的樣品convert命令:

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

最後這裏是convert命令AF之三已經通過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: invalid argument for option -thumbnail': 640x88> @ error/convert.c/ConvertImageCommand/2770.

有誰知道的方式,我可以解決這個問題?我已經蒐羅ImageMagick的文件,雖然他們承認這個問題似乎他們不提供調整圖像的任何其他方式,而無需使用特殊字符UNIX:

The Only Shrink Flag ('>' flag) is a special character in both UNIX Shell and in Window batch scripts, and you will need to escape that character (using backslash '>' in shell, and '^>' in windows batch). It is also special in and HTML web pages, so PHP scripts also may need some special handling.

許多在此先感謝。

回答

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"

相關問題