我使用Imagemagick(www.imagemagick.org)
由于我在hostgator上,我也安装了imagick和magickwand。
我可以用imagick和magickwand进行简单的操作,但如果我想在imagemagick.org上重现高级教程,我就失败了。
目标: 使其有效http://www.imagemagick.org/Usage/advanced/#jigsaw
问题:
我怎么能用imagick或magickwand来做这件事?
我能以某种方式通过命令行与模块imagemagick通信,如exec(....)?
感谢4个简短的帮助
答案 0 :(得分:1)
您可以使用exec()或shell_exec()。
例如:
exec('/path/to/your/imagick/convert jigsaw_tmpl.png -edge .5 -blur 0x.5 jigsaw_edge.png');
另外一个提示,exec()
将无法在PHP安全模式下运行。
答案 1 :(得分:0)
好。直接使用命令行命令的解决方案如下:
exec(" / usr / lib / convert user / set / seinfeld / image / image / data / apple_cinema_30.jpg -edge .5 -blur 0x.5 jaw_ege.png");
所以显然你必须知道模块的路径并正确设置图像的路径(a)。
如有必要,将根据imagick / magickwand的说明进行更新。
答案 2 :(得分:0)
我认为在Imagick中运行很复杂 - 不是说它不可能 - 并且如上所述,最好的选择是Imagemagick命令行和exec()。一次建立一个命令;您可以稍后组合命令。不要将jpg用于任何中间图像,因为您将开始失去质量。
这取决于你有什么影响,因为安东尼有一个Bash脚本,你可以使用链接到页面那一部分的底部。
你可以使用exec运行php: 将脚本上载到您的服务器 根据您的服务器设置,将其更改为755或777
// Run the script
exec("/FULL PATH TO JIGSAW/jigsaw options input.jpg mask.png output.png 2>&1", $array);
//Display any errors
echo "<br>".print_r($array)."<br></pre>";
我不知道这是否适用于Hostgator帐户,但我不知道为什么不这样做。
此外,我还没有尝试过,你需要一个掩码图像来输入你的输入图像。
我刚刚在我的服务器上尝试了这个并收到错误:/ bin / bash ^ M:错误的解释器:没有这样的文件或目录 这对我来说没什么意义!
使用Anthony的图像和代码使用Imagemagick commaand line和exec()
制作一个拼图exec("convert jigsaw_tmpl.png -edge .5 -blur 0x.5 jigsaw_edge.png");
$cmd = " holocaust_md.jpg \( jigsaw_edge.png -negate \) -geometry +365+96 ".
" -compose multiply -composite -crop 100x100+365+96 +repage ";
exec("convert $cmd jigsaw_outline.png");
$cmd = " holocaust_md.jpg -crop 100x100+365+96! -background none -flatten ".
" +repage \( jigsaw_tmpl.png +matte \) -compose CopyOpacity -composite ".
" -rotate -20 -gravity center -crop 100x100+0+0 +repage ";
exec("convert $cmd jigsaw_cutout.png");
$cmd = " jigsaw_cutout.png \( +clone -channel A -separate +channel -negate ".
" -background black -virtual-pixel background -blur 0x2 -shade 120x21.78 ".
" -contrast-stretch 0% +sigmoidal-contrast 7x50% -fill grey50 -colorize 10% ".
" +clone +swap -compose overlay -composite \) -compose In -composite ";
exec("convert $cmd jigsaw_bevel.png");
$cmd = " jigsaw_bevel.png \( +clone -fill DarkSlateGrey -colorize 100% -repage +0+1 \) ".
" \( +clone -repage +1+2 \) \( +clone -repage +1+3 \) \( +clone -repage +2+4 \) ".
" \( +clone -repage +2+5 \) -background none -compose DstOver -flatten";
exec("convert $cmd jigsaw_thickness.png");
$cmd = " jigsaw_thickness.png \( +clone -background Black -shadow 50x3+4+4 \) ".
" -background none -compose DstOver -flatten";
exec("convert $cmd jigsaw_shadow.png");