我尝试使用PHP ImageMagick类调整上传图片的大小。我在开发计算机(Windows 10)中使用exec
PHP函数成功调整了图像上传大小:
$tmpFile = $_FILES["upload"]["tmp_name"];
$move_uploadFile = $upload_path . $_FILES["upload"]['name'];
exec("magick $tmpFile -thumbnail 800x $move_uploadFile");
问题是我的生产机器的配置(Centos 7)不允许使用exec
功能。因此,我使用下面的代码:
try {
$im = new Imagick($tmpFile);
}
catch(Exception $e) {
die($e->getMessage());
}
$im->thumbnailImage(800, null);
$im->writeImage($move_uploadFile);
我收到此错误消息:
Error when creating a thumbnail: NoDecodeDelegateForThisImageFormat `JPEG' @ error/constitute.c/ReadImage/501
据我所知,这种错误是因为图像类型委托库不可用,但是当使用exec
函数成功调整图像大小时,我认为情况并非如此。
编辑:我在我的生产机器上运行了这个代码,它工作正常!我很高兴,但我无法理解为什么在我的Windows机器上代码不起作用,但它适用于Centos 7.
任何人都知道为什么它不能在Windows工作但在Centos上工作的问题是什么?