2017-06-06 126 views
0

我在许多图像上运行以下Imagemagick命令。某些图像失败,但我不确定为什么......我如何从ImageMagick和PHP获取详细的错误消息或错误编号以帮助解决故障?Imagemagick用PHP获取详细错误

$myexec = 'convert -trim -density 200 /path/filename.tif -resize 70% /path/filename.png'; 
exec($myexec, $output, $return); 

if (!$return) { 
//success 
}else{ 
//failed 
} 
+0

您看过$输出吗?也许添加一些“详细”/“细节”类型标志来转换? –

+0

$ output是一个大小为0的数组。 – heyitsmyusername

回答

1

在ImageMagick的,应先读出的输入(假设它是光栅图像,而不是一个矢量图像),然后设置,然后使用这些设置,则其他设置的运营商。你也应该指定-units。 PNG仅支持像素密度和单位像素百分比。但是,如果您指定像素单位,ImageMagick会自动将密度转换为与像素对应的pixelpercentimeter值。要看到任何文本错误信息,请尝试以下操作:

$myexec = "convert /path/filename.tif -trim -resize 70% -units pixelsperinch -density 200 /path/filename.png 2>&1"; 
exec($myexec, $output, $return); 
foreach($output as $text) {echo "$text<br>";} 

您可能还需要之前-trim指定-fuzz XX%,如果背景是不完全一致的。 XX是介于0.0和100.0之间的值

+0

谢谢!我得到了“libgomp:线程创建失败:资源暂时不可用”,这是我测试失败的第一个映像。 – heyitsmyusername

+0

我通过在站点.htaccess文件 – heyitsmyusername

+0

内添加“SetEnv MAGICK_THREAD_LIMIT 1”解决了该问题是的,某些Unix OS版本/系统在启用OpenMP时遇到问题。因此,设置MAGICK_THREAD_LIMIT通常可以解决这个问题,尽管您的处理可能会稍微慢一些。 – fmw42

相关问题