我对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");
但是这就是我得到的:
string(79)“Version:ImageMagick 6.8.9-9 Q16 x86_64 2016-06-01 www.imagemagick.org“
无论图像如何,我都会得到这个。如果文档中找不到任何内容,那么文档中没有任何内容可以默认为版本,并且日志中没有错误,所以我有点卡住了。任何帮助都会非常感谢!
答案 0 :(得分:0)
如果您查看此页面上的示例http://www.imagemagick.org/script/identify.php,则该版本是该命令的最后一行输出。我假设在使用变量时它会以某种方式覆盖其他信息。
echo "<pre>";
system("identify -verbose $original_file");
echo "</pre>";
这应该将信息输出到屏幕;它显示了什么?
EDIT 我发现这有效:
$original_file = "input.jpg";
$identify = exec("identify -verbose $original_file", $path);
print_r($path);
答案 1 :(得分:0)
我是否可以建议您尝试向捕获输出的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"