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

(shell_execのために)ホームディレクトリへの相対パスを使用する必要があります。そうでない場合は、絶対パスを使用する必要があります。

しかし、なぜphpにimagemagickを使用しないのですか?

于 2012-09-05T09:17:48.473 に答える
3

私には、それはアクセス権の問題のように見えます。Webサーバーは、ホームディレクトリ内にファイルを書き込もうとします。

通常、ホームディレクトリは、自分以外の誰もそこにファイルを書き込めないように保護されています。したがって、端末を使用している間は、Webサーバーは新しいファイルを作成できません。

新しいイメージを含むフォルダーへのアクセス権を確認し、Webサーバーを実行しているユーザーがそのフォルダーに書き込むことを許可します。

于 2012-09-05T14:52:50.223 に答える