从pdf转换图像不能在php中工作

时间:2012-05-28 15:21:40

标签: php image-processing imagemagick ghostscript

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

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

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

1 个答案:

答案 0 :(得分: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上或使用a,则需要双引号   变量。否则,单引号或双引号适用于IM。但如果   你正在从PHP exec调用IM命令,然后如你所知,你   需要小心(或逃避它们)。