ImageMagick/PHP大小调整问题:图像不会调整大小,但已安装ImageMagick

ImageMagick/PHP大小调整问题:图像不会调整大小,但已安装ImageMagick,php,imagemagick,Php,Imagemagick,我对ImageMagick有一个奇怪的问题 在同一脚本中,我有以下代码: $ct = system("convert -version"); echo $ct; 并显示以下响应: Version: ImageMagick 6.6.0-4 2012-04-26 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC Features: OpenMP 但是,当我尝试这样

我对ImageMagick有一个奇怪的问题

在同一脚本中,我有以下代码:

 $ct = system("convert -version");
 echo $ct;
并显示以下响应:

 Version: ImageMagick 6.6.0-4 2012-04-26 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC Features: OpenMP
但是,当我尝试这样做时:

 $ct2 = system("convert -resize 800x600 test-image.jpg test-image2.jpg", $retval);
 echo $retval;

它返回1,但图像不会调整大小。不应该在文件名“test-image2.jpg”下创建第二个图像并调整其大小吗?我检查了目录权限,它们被设置为0777,所以这不应该是问题所在。知道这里发生了什么吗?

返回码
1
通常被视为错误<代码>0表示“未发生错误”

我认为这是因为你的论点顺序不对。ImageMagick需要一个输入文件、一系列操作,然后是一个输出文件。尝试切换参数的顺序:

convert test-image.jpg -resize 800x600 test-image2.jpg


一个好主意是检查PHP的扩展。它为大多数ImageMagick函数提供了一个面向对象的界面。

尝试此操作以显示错误:

$array = array(); 
echo "<pre>"; 
exec("convert test-image.jpg -resize 800x600 test-image2.jpg 2>&1", $array);  
echo "<br>".print_r($array)."<br>";  
echo "</pre>";  
试试这个,看看IM的路径是什么,然后试着将convert更改为可能类似于/usr/local/bin/convert的路径

echo”“;
系统(“类型转换”);
回声“;

以同一用户的身份运行该命令以进行调试:
sudo-u www-data convert-resize 800x600 test-image.jpg test-image2.jpg
我刚刚尝试在SSH中执行sudo命令,它说找不到sudo命令。^在查看另一个脚本示例时尝试了这一点,但仍然没有成功$retval仍然显示1-我没有意识到这是一个错误。我只想安装iMagick-但不幸的是,我正在使用一个web主机,我不知道如何安装它。我对终端不是很熟悉,甚至不确定是否可以在主机上安装它。即使我可以,也不确定在哪里或如何执行。@JohnHubler您的主机不允许您访问shell,但允许执行
system
函数?如果您想知道shell命令失败的原因,我建议转到源代码。使用0或1返回值进行调试并不有趣。这是1&1托管(www.1and1.com)。我“相信”他们提供了shell访问——但我不知道如何使用它,也不知道在哪里“访问”它——我修改了我以前的声明。我可以通过SSH/terminal连接到主机。如何从那里安装iMagick?该脚本生成以下内容:数组([0]=>[1]=>libgomp:线程创建失败:资源暂时不可用)我以前从未见过该错误!在IM论坛上,它提到了IM的安装方式。在我的答案中添加了一条注释。@JohnHubler一旦出现错误,谷歌搜索结果的顶部就会给出答案
system("convert -version"); 
echo "<pre>";
system("type convert"); 
echo "</pre>";