ImageMagick 用 PHP exec 路径转换

Abh*_*kar 2 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);
?>
Run Code Online (Sandbox Code Playgroud)

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

$output 为空,$return 为 1。

但是当我使用

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

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

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

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

Sha*_*n01 5

几个小时以来,我一直在努力解决这个问题。

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);
Run Code Online (Sandbox Code Playgroud)

此代码应该可以正常工作,只是一个问题,请尝试运行“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);

它应该工作。

干杯!