2015-05-20 264 views
1

我覺得很愚蠢,但我不明白如何顯示imagepng()函數的輸出。php:顯示圖像資源

我目前做的是(和它的作品罰款):

<img src=<?php echo getImage($element); ?> />

function getImage($element){ 
    return $bdd[$element]; // the result is a string with the path to the image 
} 

但我很想在圖像上繪製某些圈子裏,所以在這裏,我想怎樣做(它不工作):

<img src=<?php echo getImage($element); ?> />

function getImage($element){ 
    $image = imagecreatefrompng($bdd[$element]); 
    $ellipseColor = imagecolorallocate($image, 0, 0, 255); 
    imagefilledellipse($image, 100, 100, 10, 10, $ellipseColor); 
    imagepng($image); 

    return $image // why does that image resource not display ? 
} 

卜它不會顯示任何東西比符號..我認爲它會返回一個完整的圖像,而不是圖像的路徑..所以我應該如何顯示我的形象與它的圓?

PS:我也試圖創建一個頁面getImage.php將由<img src=<?php echo 'getImage.php?element=' . $element; ?> />,但沒有成功

+2

_what是結果here_:只需閱讀Manual頁面,http://php.net/manual/en/function.imagepng.php,這個函數返回bool,true/false。 – panther

+0

是的,但是'$ image'是什麼? – Arcyno

+1

你讀過手冊嗎? –

回答

3

你必須做這樣的事情

<img src="image.php"> 

而在image.php你用你的代碼

$image = imagecreatefrompng($bdd[$element]); 
$ellipseColor = imagecolorallocate($image, 0, 0, 255); 
imagefilledellipse($image, 100, 100, 10, 10, $ellipseColor); 
imagepng($image); 
+0

我不知道一個PHP文件可以用作「src =」(+1),我第一次看到這個。對於那些不能使「image.php」工作的人,我通過在開頭添加了'ob_start();'並在最後添加了'ob_end_flush();'和'ob_end_clean();' * before **'imagepng($ image);')。 –

1

我終於得到了我的答案如何在HTML頁面中顯示的圖像被稱爲: 我需要將代碼放在另一個文件displayImage.php並撥打電話到這個網頁從<img>標籤:

主文件與HTML標籤:

<img src="displayImage.php?element='<?php echo $element; ?> /> 

displayImage.php:

<?php 

header('Content-Type: image/png'); 
$image = imagecreatefrompng($bdd[$element]); 
$ellipseColor = imagecolorallocate($image, 0, 0, 255); 
imagefilledellipse($image, 100, 100, 10, 10, $ellipseColor); 
imagepng($image); 
imagedestroy($image); 

?>