ImageMagick转换为PHP exec路径

时间:2014-07-25 09:01:02

标签: imagemagick

我已在本地Windows 7 PC上成功安装了ImageMagick。并测试转换C:\ xampp \ htdocs \ test \ images \ a.jpg C:\ xampp \ htdocs \ test \ images \ b.jpg

但是当我从一个名为C:\ xampp \ htdocs \ test \ index.php的PHP文件尝试这个时 用代码

<?php
    exec("C:\Program Files\ImageMagick-6.8.9-Q16\convert C:\xampp\htdocs\test\images\a.jpg C:\xampp\htdocs\test\images\b.jpg", $output, $return);
?>

它不起作用。 a.jpg文件存在。我正在使用浏览器运行带有路径http://localhost/test/index.php

的index.php文件

$ output为空,$ return为1。

但是当我使用

<?php
    exec("C:\Program Files\ImageMagick-6.8.9-Q16\convert", $output, $return);
?>

我得到的输出为Imagemagick版本...... 如果我在命令提示符下运行命令“convert”,则输出相同。 我在Windows 7中使用xamp。 我搜索了很多,但那里提到的问题并不是我面临的问题。

因为当我在PHP exec中只使用“convert”时,我得到了输出。

所以无法理解实际问题是什么。

3 个答案:

答案 0 :(得分:2)

我几个小时以来一直在反对这个问题。

exec("C:\Program Files\ImageMagick-6.8.9-Q16\convert C:\xampp\htdocs\test\images\a.jpg C:\xampp\htdocs\test\images\b.jpg", $output, $return);

此代码应该可以正常工作,只需一个问题,尝试运行“C:\ Program Files \ ImageMagick-6.8.9-Q16 \ convert C:\ xampp \ htdocs \ test \ images \ a.jpg C:\ xampp \命令提示符中的htdocs \ test \ images \ b.jpg“没有引号,并且无法识别'C:\ Program'。 需要引用转换exe的路径。

试试这个exec('"C:\Program Files\ImageMagick-6.8.9-Q16\convert" C:\xampp\htdocs\test\images\a.jpg C:\xampp\htdocs\test\images\b.jpg', $output, $return);

它应该有用。

干杯!

答案 1 :(得分:0)

运行PHP的进程是否有权修改文件系统?

答案 2 :(得分:0)

我知道这个问题已经得到了回答,但是昨晚我正在撞墙撞墙5小时试图做到这一点。

我认为值得注意的是,如果你的任何路径中都有空格(可执行文件,输入文件和输出文件),那么它们需要分别引用:

exec('"C:\Program Files\ImageMagick-6.9.1-Q16\convert" "C:\Documents\Web Dev\test.jpg" -resize 50x50 "C:\Documents\Web Dev\output.jpg"', $output, $return);

我希望这有助于节省5个小时的其他人的生命。