我有一个使用在Ubuntu / lampp上运行的MVC(yii2)的Web应用程序。当脚本尝试运行identify方法时。 它不返回任何内容,但是error_log包含一些行,说明缺少模块的事实。此错误仅适用于PNG图像格式,在JPEG / JPG上可以完美运行。
已经尝试重新安装imagemagick并进行识别,但是没有结果。另外,从命令行调用该脚本时,脚本也可以完美运行。
模型函数(getFullPath返回正确的值,这不是问题)
public function identify()
{
$cmd = "identify -verbose " . $this->getFullPath();
$cmd = str_replace(['(', ')'], ['\\(', '\\)'], $cmd);
exec($cmd, $o);
return $o;
}
脚本运行完美(只是从google下载的png文件,我的文件未保存在其中)
<?php
$cmd = "identify -verbose /home/timurmengazi/Downloads/O-Academy-rgbrev.png";
exec($cmd, $o);
print_r($o);
?>
此外,来自error_log的行
identify-im6.q16: unable to load module `/usr/lib/x86_64-linux-gnu/ImageMagick-6.9.7//modules-Q16/coders/png.la': file not found @ error/module.c/OpenModule/1302.
identify-im6.q16: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/504.
identify: unable to load module `/usr/lib/x86_64-linux-gnu/ImageMagick-6.9.7//modules-Q16/coders/png.la': file not found @ error/module.c/OpenModule/1302.
identify: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/504.
我正在使用此命令来获取图像元数据,例如压缩类型,压缩质量和其他内容。