繁体   English   中英

Imagemagick的转换命令不能通过PHP工作

[英]Imagemagick convert command not working through PHP

我正在尝试通过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.

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

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

出于兴趣,我不使用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 ");
?>

两个可能的问题。

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

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

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

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

您可以在没有path2 /的情况下尝试尝试,或提供转化路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM