2012-03-02 80 views
0

我是新來的Facebook應用程序開發和工作,我的第一個應用程序。 我試圖調整圖像使用imagecopyresampled()函數,但得到這個錯誤吧:imagecopyresampled():提供的參數不是一個有效的圖像資源

警告:imagecopyresampled():提供的參數是不是一個有效的圖像資源在...

$url = "http://graph.facebook.com/{$userId}/picture?type=large"; 
$img = "udp.gif"; 
file_put_contents($img, file_get_contents($url)); 
if (exif_imagetype($img) != IMAGETYPE_GIF) { 
    $imgFile = 'temp/' . $userId . '_fdp_' . rand() . '.gif'; 
    if (exif_imagetype($img) == IMAGETYPE_JPEG) 
     $imageObject = imagecreatefromjpeg($img); 
     if (exif_imagetype($img) == IMAGETYPE_PNG) 
      $imageObject = imagecreatefrompng($img); 
      $imagegif($imageObject, $imgFile); 
      $imgFile1='temp/' . $userId . '_fdp_.gif'; 
      $imagecopyresampled($imgFile1, $imgFile, 0, 0, 0, 0, 200, 280, 180, 252); 
      $img = $imgFile1; 
     } 
    } 
} 
+1

那麼,錯誤是相當自我解釋。 $ img從哪裏來? – 2012-03-02 06:36:27

+0

是的,既不是'$ imgFile'也不是'$ imgFile1'(它應該來自哪裏?)是gd資源。也許你應該再次閱讀手冊的例子? – deceze 2012-03-02 06:38:12

+0

@DamienPirsy:我剛剛編輯了我的代碼,並且包含了$ img的聲明部分。希望它會有所幫助。 – Maven 2012-03-02 06:40:24

回答

4

你誤解了參數類型。 resource是PHP類型,如stringfloat。需要使用適當的相關功能創建資源。在你的情況下,你需要一個resource的原始圖像,用imagecreatefromjpeg等功能創建,另一個類似的resource將圖像複製到,很可能是用imagecreatetruecolor創建的空白圖像。

引述example from the manual

$image_p = imagecreatetruecolor($new_width, $new_height); 
$image = imagecreatefromjpeg($filename); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

你,而不是什麼是不存在的變量和一個字符串,它不是必需的輸入。

相關問題