提高页面加载速度的一种方法是指定图像尺寸(高度和宽度)。在PHP中,可以使用getimagesize()来实现,但如果有很多图像,执行速度可能会很慢。
动态获取许多图像的图像尺寸,并对页面加载影响最小的最佳方法是什么?我们正在谈论50多张图片。
提高页面加载速度的一种方法是指定图像尺寸(高度和宽度)。在PHP中,可以使用getimagesize()来实现,但如果有很多图像,执行速度可能会很慢。
动态获取许多图像的图像尺寸,并对页面加载影响最小的最佳方法是什么?我们正在谈论50多张图片。
我刚刚测试了55个5+MB的图片:
Imagemagick的getImageGeometry花费了5.3秒
(因为在每个文件之后必须重新创建imagick对象),而getimagesize在0.032秒
内遍历了这些图片。后者是完全可以接受的。
如果不行,就将尺寸存储在数据库中。
编辑:此外,如果通过TCPIP获取文件,则会大大降低处理速度。因此,如果您这样调用它:
getimagesize('http://www.blabla.com/pic.jpg');
而不是
getimagesize('localdir/hereiam/pic.jpg');
您会得到一些网络开销。
此外,如果这些图片始终具有EXIF数据(由数字相机制作),则可以使用PHP exif_函数,如:exif_read_data。
问题:您使用的是哪个PHP版本?旧的4.x版本在某些文件系统上使用getimagesize时存在较小的问题。
getimagesize()
可能会在处理大型图片时变慢,而且它还依赖于服务器。如果您有大量图片集合,并希望在页面上显示每个图像的分辨率,我建议使用数据库来实现。每当上传或修改图像时,都会使用 getimagesize()
。getimagesize()
,以查看站点的性能表现。我知道的获取图像尺寸最快的方法
我相信你所说的不是图标和设计图片,而是用户和编辑上传到服务器的动态图片。
如果是这种情况,我会在上传时调整图片大小,并始终知道它们的尺寸。