我正在从路径存储在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
?>
我尝试使用了许多其他功能,但没有任何帮助。他们中的大多数都显示了一串异常长的不可读数据。请指出该怎么做。
提前致谢。
答案 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'].'">';
}
?>