php中的Imagemagick命令无法正常工作

php中的Imagemagick命令无法正常工作,php,Php,我有一个PHP脚本,可以在其中设置imagemagick的参数 我想使用这个命令 convert image.jpg -distort SRT "%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14" rotate_image.jpg -distort SRT "%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14" -enhance -sh

我有一个PHP脚本,可以在其中设置imagemagick的参数

我想使用这个命令

convert image.jpg -distort SRT  "%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14" rotate_image.jpg
-distort SRT  "%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14"
-enhance -sharpen 1x1 -quality 90 -strip
在脚本中,我设置了这个命令

convert image.jpg -distort SRT  "%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14" rotate_image.jpg
-distort SRT  "%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14"
-enhance -sharpen 1x1 -quality 90 -strip
但是这个命令不起作用

我认为我的命令中的
=
有问题

例如,如果我测试这个命令

convert image.jpg -distort SRT  "%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14" rotate_image.jpg
-distort SRT  "%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14"
-enhance -sharpen 1x1 -quality 90 -strip

它工作正常。

您没有说明如何尝试从php中使用imagick。从您的措辞来看,我猜您试图通过某种形式的
exec()
调用来执行cli可执行文件。这是可能的,以下代码对我来说工作正常,并旋转图像:

<?php
$command = "convert image.jpg -distort SRT '%[fx:aa=14*pi/180;(w*abs(sin(aa))+h*abs(cos(aa)))/min(w,h)], 14' rotate_image.jpg";
exec($command);

我没有源代码PHP脚本,我只有设置选项,可以在其中设置imagemagick字符串。在这种情况下,很难说什么会导致问题,因为我们不知道带选项的字符串是如何清理的。请尝试用单引号替换双引号,因为字符串中没有需要shell扩展的内容。然后重试添加一个引号作为现有字符串的第二个字符,另一个引号作为现有字符串的倒数第二个字符。为什么这个问题被标记为
php
?在bash-imagemagick命令中工作正常,但在php脚本中不起作用。