【问题标题】:PHP use of IMAGEMAGICK or imagick or magicwandPHP 使用 IMAGEMAGICK 或 imagick 或 magicwand
【发布时间】:2012-04-30 01:06:00
【问题描述】:

我使用 Imagemagick (www.imagemagick.org)

由于我在 hostgator 上,所以我还安装了 imagick 和 magickwand。

我可以使用 imagick 和 magickwand 进行简单的操作,但如果我想复制 imagemagick.org 上的高级教程,我会失败。

目标: 让这个工作http://www.imagemagick.org/Usage/advanced/#jigsaw

问题:

我如何使用 imagick 或 magickwand 做到这一点?

我还能以某种方式通过命令行与模块 imagemagick 进行通信,例如 exec(....)?

感谢 4 个简短的帮助

【问题讨论】:

    标签: imagemagick imagick magickwand


    【解决方案1】:

    您可以使用exec()shell_exec()

    例如:

    exec('/path/to/your/imagick/convert jigsaw_tmpl.png -edge .5 -blur 0x.5 jigsaw_edge.png');
    

    再提醒一下,exec() 在 PHP 安全模式下将无法工作。

    【讨论】:

      【解决方案2】:

      好的。直接使用命令行命令的解决方案如下:

      exec("/usr/lib/convert user/set/seinfeld/image/image/data/apple_cinema_30.jpg -edge .5 -blur 0x.5jaw_ege.png");

      所以显然你必须知道模块的路径并正确设置图像的路径 (a)。

      如有必要,将使用 imagick/magickwand 的说明进行更新。

      【讨论】:

        【解决方案3】:

        我认为在 Imagick 中运行是很复杂的——并不是说不可能——而且如上所述,最好的选择是 Imagemagick 命令行和 exec()。一次构建一个命令;您也许可以稍后组合命令。不要将 jpg 用于任何中间图像,因为您会开始降低质量。

        这取决于您所追求的效果,因为 Anthony 有一个 Bash 脚本,您可以使用链接到页面该部分的底部。

        您可以使用 exec 使用 php 运行它: 将脚本上传到您的服务器 根据您的服务器设置将其 CHMOD 为 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: bad interpreter: No such file or directory 这对我来说毫无意义!

        使用 Anthony 的图像和带有 Imagemagick 命令行和 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");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-12-20
          • 2013-10-23
          • 1970-01-01
          • 2010-10-09
          • 2014-06-26
          • 2014-01-30
          • 2013-08-28
          • 2013-01-02
          相关资源
          最近更新 更多