2014-02-20 196 views
0

我有以下代碼:imagecopyresampled返回null

$fullImg = $_POST['img']; 
$avatar_name = $log_username.md5(uniqid()).'_avatar.jpg'; 
$avatar_path = '../user/'.$log_username.'/'; 
$avatar_new = $avatar_path.$avatar_name; 
$target_h = $target_w = 150; 
$x = $_POST['x']; 
$y = $_POST['y']; 
$w = $_POST['w']; 
$h = $_POST['h']; 
$qual = 90; 

$orig_image = imagecreatefromjpeg($fullImg); 
$new_image = imagecreatetruecolor($target_w,$target_h); 

imagecopyresampled($new_img,$orig_image,0,0,$x,$y,$target_w,$target_h,$w,$h); 

imagejpeg($new_image,$avatar_new,$qual); 

我有我的error_log一個錯誤,說:

警告:imagecopyresampled()預計參數1是資源,空給出

我猜這跟我的$_POST['img']變量有關係:

http://domain.com/images/image.jpg 

我在我的php.ini文件中將allow_url_fopen設置爲1。我認爲這可能會解決它。

它只是一個完整的網址,因爲它被js讀取爲var img = _('uloadedImg').src;,儘管設置爲../images/image.jpg,var img = _('uloadedImg').src;仍然返回完整的網址。

有沒有辦法從圖像中獲取src而沒有完整的url在js中?或者,除了那個之外,我的劇本還有什麼不對嗎?

+2

$ new_img = $ new_image?如果你打開錯誤報告,你會注意到這些類型的錯誤 –

+0

你是現貨。我很抱歉在這個網站上浪費了一個這麼愚蠢的錯誤。 – Wildcard27

回答

1

有一種類型的錯誤,您指定$new_img而不是$new_image

$new_image = imagecreatetruecolor($target_w,$target_h); 
imagecopyresampled($new_img,$orig_image,0,0,$x,$y,$target_w,$target_h,$w,$h); 
        ^

嘗試以下:

imagecopyresampled($new_image,$orig_image,0,0,$x,$y,$target_w,$target_h,$w,$h); 
+0

OMG ...我認爲這是宇宙告訴我,我今天一直在這太久了!睡覺的時間我認爲!謝謝 :) – Wildcard27