Ubuntu12サーバーでImageMagick6.6.9を使用しています。私が抱えている問題は、shell_exec
関数を使用してPHPを介して実行する(ただし、試した)ImageMagick変換コマンドに、PHP関数がエスケープするexec
文字が含まれていることです。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シェルとWindowsバッチスクリプトの両方で特殊文字であり、その文字をエスケープする必要があります(シェルではバックスラッシュ'>'を使用し、Windowsバッチでは' ^>'を使用します) 。また、HTML Webページでも特別であるため、PHPスクリプトでも特別な処理が必要になる場合があります。
よろしくお願いします。