Imagemagick转换命令无法通过PHP工作

时间:2017-04-18 15:10:16

标签: php imagemagick imagemagick-convert

我试图通过PHP运行imagemagic命令,这个命令在命令提示符下完美运行,但不是从PHP运行,可能是什么问题。其他简单的转换命令正在通过PHP

convert -size 101x111 -background none -fill '#fcfcfc' -pointsize 15 label:'Whitesdd' -trim \/var/www/html/clients/kahuna.in/uploads/kukui_single_nut_image/14925222350_color.png +swap -gravity center -composite \/var/www/html/clients/kahuna.in/uploads/kukui_single_nut_image/14925222350.png

通过PHP

system("convert -size 101x111 -background none -fill '#fcfcfc' -pointsize 15 label:'Whitesdd' -trim \/var/www/html/14925222350_color.png +swap -gravity center -composite \/var/www/html/14925222350.png 2>&1", $var);

output os
convert: not authorized `Whitesdd' @ error/constitute.c/ReadImage/454. convert: no such image `/var/www/html/14925222350_color.png' @ error/mogrify.c/MogrifyImageList/8221. convert: no images defined `/var/www/html/14925222350.png' @ error/convert.c/ConvertImageCommand/3046.

2 个答案:

答案 0 :(得分:0)

不确定结果应该是什么样子但是这应该可以正常工作而不会产生任何错误:

您只需要图像的相对路径,这可能是问题所在 编写这样的代码意味着您可以在使用有助于故障查找的变量时回显命令。 它还将代码拆分为可读块。 您可以使用父级来帮助控制代码。

出于兴趣,我不使用imagemagick API(imagick),因为我发现它不支持很多选项,你需要编写更多代码。

<?php
$cmd = "-size 101x111 -background none -fill '#fcfcfc' ".
" -pointsize 15 label:'Whitesdd' -trim input.png +swap ".
"-gravity center -composite 14925222350.png ";

exec("convert $cmd 14925222350.png ");
?>

答案 1 :(得分:0)

两个可能的问题。

首先,您的输出图像为14925222350.png,在代码中指定两次,第一次在cmd中,第二次在php转换中。

其次,尝试添加转换的完整路径。

尝试此操作以查看您收到的错误消息:

<?php
exec("path2/convert $cmd 2>&1",$out,$returnval);
foreach($out as $text)
{echo "$text<br>";}
?>

您可以尝试不使用path2 /或提供转换路径。