3

我尝试将 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。

有人有想法吗?

4

2 回答 2

4

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

但是你为什么不使用imagemagick 的 php呢?

于 2012-09-05T09:17:48.473 回答
3

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

通常,您的主目录受到保护,除了您自己之外,没有人可以在其中写入文件。因此,您的 Web 服务器无法在使用终端时创建新文件。

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

于 2012-09-05T14:52:50.223 回答