我从越来越多的大网站(谷歌、Facebook、Youtube 等)注意到他们正在调整图像大小以“接近”客户端所需的测量值,我想知道这是否是人们方式的转变正在思考或他们很懒惰。
假设为一组产品(电子商务)以特定尺寸向一组标准图像添加新的图像尺寸,这些产品的数量可达 100 到数千,甚至数百万。
假设我有一份原始图像的副本,大小为 300x350 或其他大小,然后在客户端将其大小调整为 200x250。我为页面上的 20 个产品的每个产品执行此操作。
服务器端适应这种新尺寸的工作和问题真的值得让客户端受益吗?
如果不是,那么判断何时应该预处理特定尺寸的好方法是什么?
如果是,服务器端处理和缓存是否有时会变得过大(即容纳 110x220、120x230、150x190 等 8 张图像)?
最佳答案
考虑以下内容: 图像大小调整是服务器的繁重过程。它首先本身就很昂贵。其次是硬盘驱动器 IO 操作,速度非常慢。所以这完全取决于您的服务器的负载情况。
对于客户来说,它在两个方面很重要:
1) 缩略图的文件较小,因此下载速度更快。所以他们会出现得更快。但这一切都取决于互联网连接的速度,而互联网连接的速度每天都在增加。你见过加载多大的图像吗?它们不会一次全部显示,而是按“线”显示
2) 如果您尝试以小尺寸显示大图像,质量会低很多。这是因为浏览器如何处理它。他们没有 Photoshop 的功能,无法进行适当的质量调整。
3) 单个页面上的许多大图像会增加该页面的内存使用量。在一些不太强大的计算机上,滚动打开时可能会出现严重的延迟。
作为这个问题的解决方案,我更倾向于做我在 Drupal 模块之一(imagecache
如果我是对的)看到的事情。
它不会在图片上传时创建缩略图。相反,它使用 .htaccess 和 mod_rewrite 功能在请求时创建它们。它检查请求的文件是否不存在,如果不存在,它将请求重定向到小型轻量级 PHP 脚本,该脚本将创建缩略图,将其写入文件系统,然后输出到客户端。
因此下一位访问者将已经获得之前创建的缩略图。
因此您实现了延迟/延迟图像大小调整,这将使加载更平滑(及时拉伸(stretch))。
关于php - 服务器端图像大小调整性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13529923/