1

我在我的 C 驱动器中安装了 ghostscript 和 imagemagick,我在 D 驱动器中有我的 wamp 服务器,其中一个文件有代码

<?php exec('convert "sd.pdf[0]" -colorspace RGB -geometry 200 "document.png"'); 
?>

文件 sd.pdf 存在于我的程序所在的文件夹中。该程序没有给出错误,但也没有在该文件夹中制作图像。为什么?附加问题:-在 php 中使用 Imagemagick 和 ghostscript 会使程序变慢还是变快?

4

1 回答 1

0

您需要删除或转义双引号,它在 Windows 上无法正常工作。查看我的 execute() 方法了解更多信息:https ://github.com/webarto/instagraph/blob/master/instagraph.php#L55

public function execute($command)
{
    # remove newlines and convert single quotes to double to prevent errors
    $command = str_replace(array("\n", "'"), array('', '"'), $command);
    # replace multiple spaces with one
    $command = preg_replace('#(\s){2,}#is', ' ', $command);
    # escape shell metacharacters
    $command = escapeshellcmd($command);
    # execute convert program
    exec($command);
}

与 IM 最大的贡献者之一聊天...

没有任何引号, rgb(255, 255, 255) WITH SPACES 会导致问题。同样,如果不引用十六进制值中的#,可能会导致问题。如果在 Windows 上或使用变量,则需要双引号。否则,单引号或双引号都适用于 IM。但是,如果您从 PHP exec 调用 IM 命令,那么如您所知,您需要小心(或转义它们)。

于 2012-05-28T15:29:08.183 回答