改善页面加载的一种方法是指定图像尺寸(高宽)。在 PHP 中,这可以通过 getimagesize() 完成,但是我可以想象,如果您有很多图像,执行起来会很慢。
在对页面加载影响最小的情况下动态获取许多图像的图像尺寸的最佳方法是什么。我们说的是 50 多张图片。
最佳答案
我刚刚测试了 55 张 5MB 以上的图片:
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 问题较小。
关于php - 动态检索图像尺寸的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3334097/