2009-12-10 80 views
0

我寫道:爲什麼不能用這個形象?

$im = imagecreatefromstring($im_string);   
return imagegif($im,'a.gif'); 

變量$im_string的內容我從一個ZIP文件得到。 它應該可以工作,但它會返回'1'

爲什麼是這個原因?

回答

2

imagegif函數返回一個布爾值,所以返回值爲將表明它是成功的。

如果您需要返回實際圖像數據,則還需要傳遞第二個參數,並從文件中讀取數據或緩衝該函數的輸出。

<?php 
ob_start(); 
$im = imagecreatefromstring($im_string);   
imagegif($im); 
$img_data = ob_get_clean(); 

return $img_data; 
?> 

或者:

<?php 
$im = imagecreatefromstring($im_string);   
imagegif($im, 'a.gif'); 

$img_data = file_get_contents('a.gif'); 

return $img_data; 
?> 
+0

這意味着我必須做一個其他的網址,但gif標題 –

+0

我已經添加了幾個例子。也許這有幫助?我可能會誤解你這樣做的原因。我假設你正在將JPEG和PNG圖像轉換爲GIF? – Atli

+0

爲op_get_clean()+1,我沒有想到這一點。 – Fredrik

2

按照php manual imagegif回報如下:

返回值

成功返回TRUE或FALSE的 失敗。

你預期它會返回什麼?圖像數據?

編輯:在評論中回答問題。 要輸出實際數據,您應該沒有第二個參數(將其發送到文件a.gif),以便它將數據直接發送到輸出,或者您獲取a.gif並在其中發送數據。在這兩種情況下,您都需要記住將正確的內容類型標題發送回客戶端。

+0

哈哈,是的,我預期,我怎麼可以讓它返回的圖像數據 –

+0

,並在一定意義上,返回1(如果這是它做什麼)是返回真正。 – Fredrik