2012-09-05 144 views
3

我嘗試將RGB顏色轉換成透明PHP了shell_exec不工作ImageMagick的命令

當我在命令行中使用此代碼,它可以完美運行。

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

錯誤消息中的路徑是否爲您的文件的正確路徑? – John3136

+0

現在路徑被糾正了,但是仍然是相同的錯誤... – mcknight

回答

3

對我來說,這看起來像一個訪問權限問題。您的Web服務器嘗試在主目錄中寫入文件。

通常情況下,您的主目錄受保護的方式是沒有人除了您自己可以在其中寫入文件。因此,當您使用終端時,您的Web服務器無法創建新文件。

檢查應包含新映像的文件夾的訪問權限,並允許運行Web服務器的用戶寫入該文件夾。

4

您必須使用相對路徑到您的homedir(因爲shell_exec)否則您必須使用絕對路徑。

但爲什麼不使用imagemagick for php

+0

路徑現在被糾正了,但仍然是相同的錯誤。我不使用imagemagick for php,因爲我無法在其中找到convert -transparent命令... – mcknight

相關問題