您好我正在使用此代码从文件夹中提取图像然后将其视为一个简单的网格库。如何从拉出的图像中显示小缩略图(200px * 140px)。您可以看到我尝试使用css(320px * 240px)但它仍然将整个大图像加载到那个大小。请帮助我。我想减少加载时间。
<?php
$files = glob("images/gallery/photos/*.*");
for ($i=1; $i<count($files); $i++)
{
$image = $files[$i];
echo '<img src="'.$image .'" class="group2" style="border:2px solid #666; height: 240px; width:320; margin: 5px; float: left;" />';
}
?>
答案 0 :(得分:0)
对我来说,这段代码有效:
<?php
$files = glob("images/gallery/photos/*.*");
for ($i=1; $i<count($files); $i++)
{
$image = $files[$i];
echo '<img src="'.$image .'" class="group2" style="border:2px solid #666; width:200px; margin: 5px; float: left;" />';
}
?>
我建议您删除img的高度,这样图像就不会变形。
答案 1 :(得分:0)
CSS样式应用于客户端的图像。这意味着整个(大)图像仍然必须由服务器发送到客户端。
您可以使用PHP中包含的GD库来调整服务器上的图像大小。
更具体地说,有一种称为“imagecopyresized”的方法。可以在此处找到更多文档和示例:
http://www.php.net/manual/en/function.imagecopyresized.php
你可以做这样的事情(取自上面链接的页面,只添加标题):
<?PHP
header("Content-type: image/png");
// File and new size
$filename = 'test.jpg';
$percent = 0.5;
// Content type
header('Content-Type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
?>