我尝试将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");
?>
我得到错误:
convert:无法打开图像`/home/me/web/mynew.png':@error/blob.c/OpenBlob/2498。
有人有主意吗?
必须使用homedir的相对路径(因为shell_exec),否则必须使用绝对路径。
但是为什么不将imagemagik用于php呢?
对我来说,这看起来像是访问权限问题。您的web服务器尝试在主目录中写入一个文件。
通常情况下,您的主目录受到保护,因此除了您自己,没有人可以在其中写入文件。因此,您的web服务器无法创建新文件,而您可以在使用终端时创建。
检查应包含新图像的文件夹的访问权限,并允许运行web服务器的用户写入该文件夹。