如何回显在PHP中动态生成的缩略图?

时间:2016-04-24 15:52:33

标签: php echo thumbnails

我正在从路径存储在MySQL数据库中的图像创建缩略图。但是当我回显缩略图时,只显示图像图标而不是缩略图。我需要改变什么?因为我是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
     ?>

我尝试使用了许多其他功能,但没有任何帮助。他们中的大多数都显示了一串异常长的不可读数据。请指出该怎么做。

提前致谢。

2 个答案:

答案 0 :(得分:0)

我对PHP图像功能一无所知,但是......

变量$ thumb似乎是从imagecopyresampled返回的资源ID。 img标签上的src属性应该是图像文件的路径。

答案 1 :(得分: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'].'">';
}
?>