我尝试将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。
有人有想法吗?
答案 0 :(得分:4)
你必须使用homedir的相对路径(因为shell_exec),否则你必须使用绝对路径。
但为什么不使用imagemagick for php?
答案 1 :(得分:3)
对我而言,这看起来像是访问权限问题。您的Web服务器尝试在主目录中写入文件。
通常,您的主目录受到保护,除非您自己可以在那里写文件,否则没有人。因此,在使用终端时,您的Web服务器无法创建新文件。
检查包含新映像的文件夹的访问权限,并允许运行Web服务器的用户写入该文件夹。