我有一个简单的php文件,用于运行来自。
的imageMagick转换命令我遇到的问题是,当我运行我的代码时,它并没有创建它所设想的图像,而且我的页面上也没有任何错误,所以我无法弄清楚是什么问题是!
我知道我已正确安装了imageMagick,因为这可以正常工作:
<?php
shell_exec("convert input.jpg \
-gravity Southwest -background '#f48fb0' -splice 0x44 \
-pointsize 30 -fill white -annotate +10+4 'Some image Caption Goes here' output.jpg");
?>
但这并不能创造任何东西,也不会出现任何错误:
<?php
shell_exec("width=`identify -format %w input.jpg`; \
convert -background '#0008' -fill white -gravity center -size ${width}x30 \
caption:"Faerie Dragons love hot apple pies\!" \
dragon.gif +swap -gravity south -composite anno_caption.jpg");
?>
我按照这里的教程进行操作:
http://www.imagemagick.org/Usage/annotating/
有人可以就此问题提出建议吗?
提前致谢。
正如所建议的那样,我尝试了这段代码并且它没有任何输出并且没有创建图像:
shell_exec("width=identify -format %w input.jpg \
convert -background '#0008' -fill white -gravity center -size ${width}x30 \
caption:'Faerie Dragons love hot apple pies\!' input.jpg +swap -gravity south -composite anno_caption.jpg");
答案 0 :(得分:1)
shell_exec("width=`convert input.jpg -format '%w' info:` \
convert -background '#0008' -fill white -gravity center -size ${width}x30 \
caption:'Faerie Dragons love hot apple pies\!' dragon.gif +swap -gravity south -composite anno_caption.jpg");
试试这个!我假设你有input.jpg和dragon.gif文件。
答案 1 :(得分:1)
这就是我编写代码的方式,尽管它可以正常工作。它可能不会创建您正在寻找的图像,但我不知道您需要的结果。
如果您使用的是V7,则可能会错过识别部分
**修改了代码以将Shell_exec更改为执行标识行**
<?php
// Read the width into a variable
$width= exec("identify -format %w input.jpg");
// Put the command into a variable
// Allows you to echo the command to show what you are actually running
$cmd = "-background \"#0008\" -fill white -gravity center -size {$width}x30".
" caption:\"Faerie Dragons love hot apple pies\!\" ".
" dragon_sm.gif +swap -gravity south -composite ";
echo $cmd;
// Run the command with some error reporting
// In production I would either disable the error display
// or remove the error reporting totally
$array=array();
echo "<pre>";
exec ("convert $cmd anno_caption.jpg 2>&1", $array);
echo "<br>".print_r($array)."<br>";
echo "</pre>";
?>