我在使用Imagemagick时遇到了这个奇怪的问题。
遵循来自imagemagick.org的示例使用说明:
$identify = exec("identify $original_file");
命令输出如下:
rose.jpg JPEG 70x46 70x46+0+0 8位sRGB 2.36KB 0.000u 0:00.000
这很好。
下一个命令应该给出一个包含所有不同属性的长列表:
$identify = exec("identify -verbose $original_file");
但是我得到的是:
字符串(79)"版本:ImageMagick 6.8.9-9 Q16 x86_64 2016-06-01www.imagemagick.org"
不管图像是什么,我都会得到这个。如果它找不到任何东西,文档中没有关于默认版本的任何内容,日志中也没有错误,所以我有点卡住了。任何帮助将是伟大的,谢谢!
如果您查看此页面的示例http://www.imagemagick.org/script/identify.php,则版本是命令的最后一行输出。我想当你使用变量时,它会以某种方式覆盖其他信息。
echo "<pre>";
system("identify -verbose $original_file");
echo "</pre>";
这将把信息输出到屏幕;它显示什么?
编辑我发现这个工作:
$original_file = "input.jpg";
$identify = exec("identify -verbose $original_file", $path);
print_r($path);
我建议您尝试向捕获输出的exec()
添加一个额外的参数,如下所示:
<?php
$identify = exec("identify -verbose copyright.jpg",$output);
var_dump($output);
?>
array(88) {
[0]=>
string(20) "Image: copyright.jpg"
[1]=>
string(61) " Format: JPEG (Joint Photographic Experts Group JFIF format)"
[2]=>
string(23) " Mime type: image/jpeg"
[3]=>
string(20) " Class: DirectClass"
[4]=>
string(21) " Geometry: 10x12+0+0"
[5]=>
string(18) " Units: Undefined"
[6]=>
string(15) " Type: Palette"
[7]=>
string(22) " Endianess: Undefined"
[8]=>
string(18) " Colorspace: sRGB"
[9]=>
string(14) " Depth: 8-bit"
[10]=>
string(16) " Channel depth:"
[11]=>
string(14) " red: 8-bit"
[12]=>
string(16) " green: 1-bit"
[13]=>
string(15) " blue: 1-bit"