需要有关PHP头像脚本的帮助

时间:2009-11-12 05:47:33

标签: php

我制作了一个简单的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. '" />';
}

?>

5 个答案:

答案 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" />,知道图像存在(假设用户有效)。