2016-04-24 58 views
0

我從路徑存儲在MySQL數據庫中的圖像創建縮略圖。但是,當我回顯縮略圖時,僅顯示圖像圖標,而不顯示縮略圖。我需要改變什麼?請保持您的答案簡單,因爲我是PHP新手。如何回顯在php中動態生成的縮略圖?

這裏是我使用的代碼:我試圖用許多其他功能

<?php 
    //database connectivity code 
    $query = mysql_query("SELECT * FROM images"); 
    while($row = mysql_fetch_array($query)) 
    { 
    $im = imagecreatefromjpeg($row['image_path']); 

    $width = imagesx($im); 
    $height = imagesy($im); 

    $imgw = 150; 
    $imgh = $height/$width * $imgw; 

    $thumb = imagecreatetruecolor($imgw,$imgh); 

    imagecopyresampled($thumb,$im, 0,0,0,0,$imgw, $imgh, ImageSX($im), ImageSY($im)); 

    ?> 

    <img src = "<?php echo $thumb ?>" > 

    <?php 
    } //closing while 
    ?> 

但沒有做太大的幫助。他們中的大多數人顯示了一串不可讀的數據。請指出該怎麼做。

在此先感謝。

回答

0

我什麼都不知道PHP圖像功能,但...

變量$拇指似乎是一個資源ID從imagecopyresampled返回。 img標籤上的src屬性應該是圖像文件的路徑。

0

這個例子不起作用。你必須創建2個文件:

<?php 

    # image.php file 

    $query = mysql_query("SELECT * FROM images WHERE id=" . mysql_real_escape_string($_GET['image_id'])); 
    row = mysql_fetch_array($query) 

    $im = imagecreatefromjpeg($row['image_path']); 

    $width = imagesx($im); 
    $height = imagesy($im); 

    $imgw = 150; 
    $imgh = $height/$width * $imgw; 

    $thumb = imagecreatetruecolor($imgw,$imgh); 

    imagecopyresampled($thumb,$im, 0,0,0,0,$imgw, $imgh, ImageSX($im), ImageSY($im)); 

    imagejpeg($thumb, null, 100); 
?> 

,然後在你的HTML,你可以把

<?php 

$query = mysql_query("SELECT * FROM images"); 
while($row = mysql_fetch_array($query)) 
{ 
    echo '<img src = "image.php?image_id='.$row['id'].'">'; 
} 
?> 
+0

謝謝回覆。我試了一下,但它似乎也沒有這樣工作。它仍然只顯示圖像圖標來代替縮略圖。 – Leeds

+0

你能從你的代碼中獲得更多嗎?這種方法應該可以工作,但這取決於你的環境 –

+0

嗯,我想通了。我必須用中的php標籤替換您建議的 Leeds