2014-02-20 142 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