【问题标题】:Imagemagick command line in PHPPHP中的Imagemagick命令行
【发布时间】:2011-01-17 03:11:42
【问题描述】:

我在命令行中有以下两个imagemagick命令:

convert in.png container-mask.png +matte -compose CopyOpacity -composite  out.png
composite container.png  out.png -compose multiply final.png

这两个命令包括 3 个文件:

  • in.png:应该被屏蔽的文件
  • container-mask.pngcontainer.pngin.png 应该可见的区域的背面/白色掩码
  • container.png 图像,其中包含 in.png 的容器,该容器已使用 container-mask.png 以黑/白方式遮盖

现在的问题是如何将此命令转换为 PHP 调用。我玩了很多,但我无法理解http://php.net/manual/en/book.imagick.php的API

感谢和祝福, 查理

【问题讨论】:

    标签: php imagemagick


    【解决方案1】:

    我找到了答案。嗯,这毕竟不是太复杂:

    $original = new Imagick("in.png");
    $mask = new Imagick("container-mask.png");
    $container = new Imagick("container.png");
    
    $mask->setImageMatte(0);
    $original->compositeImage($mask, Imagick::COMPOSITE_COPYOPACITY, 0, 0);
    $container->compositeImage($original, Imagick::COMPOSITE_MULTIPLY, 0,0);
    $container->setImageFormat( "png" );
    echo $container;
    

    【讨论】:

    • 对于您可以在命令行上执行但在 PHP 中没有库的任何活动,如果任何普通用户(不是超级用户或管理员或 root 等)可以执行该任务,您可以使用 exec() .但需要为工具提供绝对路径。
    • 除非您使用变量插值,否则不要使用双引号作为字符串限定符。请改用单引号。
    • @AmilWaduwawara 但我可以从 Exec() 获取任何已执行命令的输出吗?
    猜你喜欢
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 2017-02-05
    • 2013-01-02
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    相关资源
    最近更新 更多