php shell_exec不能使用imagemagick命令

时间:2012-09-05 08:59:58

标签: php shell imagemagick exec

我尝试将rgb颜色转换为透明

当我在命令行中使用此代码时,它可以完美运行。

convert -transparent 'RGB(249,249,255)' /home/me/web/my.png /home/me/web/mynew.png

但是当我用它与php:

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

$output = shell_exec("convert -transparent 'RGB(249,249,255)' /home/me/web/my.png /home/me/web/mynew.png");

?>

我收到错误:

转换:无法打开图像`/home/me/web/mynew.png':@ error / blob.c / OpenBlob / 2498。

有人有想法吗?

2 个答案:

答案 0 :(得分:4)

你必须使用homedir的相对路径(因为shell_exec),否则你必须使用绝对路径。

但为什么不使用imagemagick for php

答案 1 :(得分:3)

对我而言,这看起来像是访问权限问题。您的Web服务器尝试在主目录中写入文件。

通常,您的主目录受到保护,除非您自己可以在那里写文件,否则没有人。因此,在使用终端时,您的Web服务器无法创建新文件。

检查包含新映像的文件夹的访问权限,并允许运行Web服务器的用户写入该文件夹。