我制作了一个简单的PHP脚本来显示他们上传的用户头像,但我想知道如何改进下面的脚本。
我能做些什么来改善非常大的用户头像图像的加载时间?如果是这样,我如何将其添加到我的代码中?
以下是代码:
<?php
list($width, $height) = getimagesize("images/pic.jpg");
if ($width >= 180){
$width = 180;
echo '<img src="images/pic.jpg" width="' .$width. '" />';
} else {
echo '<img src="images/pic.jpg" width="' .$width. '" height="' .height. '" />';
}
?>
答案 0 :(得分:0)
减少加载时间的最佳方法是调整代码中的图像文件大小。您上面所做的是向客户端提供完整大小的图像,并使用HTML指示浏览器调整图像大小。
更新:您可以使用phpthumb创建缩略图。确保安装了GD,因为它是依赖项。
答案 1 :(得分:0)
我需要来自用户的特定大小的头像,这样可以保持加载时间的一致性,并且允许您从CSS维护相同的样式,而不会让您的设计变化。
希望这有帮助, 大卫
答案 2 :(得分:0)
我会调整大小&amp;使用GD预先将上传的头像文件转换为180x ...或... x180 PNG图片。
答案 3 :(得分:0)
由于看起来您将用户限制为180px图像宽度,我会在上传时调整图片大小。然后,您可以保留“缩略图”版本以便快速显示,只有在有人访问用户个人资料时才会显示“完整”版本。
由于您正在控制上传,您甚至可以使缩略图成方形,以便所有头像在尺寸上完美匹配。要做到这一点,你可以将整个尺寸裁剪为正方形。
在任何一种情况下,我绝对不会简单地依靠浏览器来为您调整图像大小。在您的示例中,您仍然将完整图像发送到浏览器。
答案 4 :(得分:0)
您应该考虑在上传时将图片缩放到最大宽度为180像素,然后提供此缓存图片,而不是在每个服务上请求尺寸。
编辑:PHP文档(imagecopyresized()
)中的示例应该会给您一个想法。然后,您可以简单地将已调整大小的图像另存为用户名/用户ID并提供<img src="images/resized/' . USER-ID-OR-NAME-GOES-HERE . '.jpg" alt="Avatar for USERNAME" />
,知道图像存在(假设用户有效)。