动态调整图像大小,或在磁盘上存储不同的大小?

时间:2010-08-12 10:18:24

标签: image performance web image-resizing

我正在构建一个最终将包含大量图像的Web应用程序。这些图像需要在整个站点以不同的格式显示。这两种解决方案的优缺点是什么:

  1. 上传图片的各种版本(例如Thumb,small,medium,large,verylarge)
  2. 通过网址调整图片大小 - 例如/内容/图像/ 1?高度= 300
  3. 您怎么看?

    修改 我很难接受另一个答案,所以对于读这个q / a的人来说,花点时间阅读这两个答案,因为接受的答案是通过硬币选择的:)他们都同样好。

2 个答案:

答案 0 :(得分:4)

如果我看看维基媒体,他们会采取某种组合。

您可以通过参数定义大小,并在第一步中查看这样的文件是否存在,如果不是动态创建它并将其保存以用于下一个请求。

更新

阅读评论后。

这个问题几乎每次都会出现:我是否优化了的速度?这是你必须为自己和你的具体问题做出的决定。

也许您可以实施一些额外的检查,例如,如果请求的特定大小超过x次,则将其存储在磁盘上,或删除所有未获得y时间请求的存储图像。

答案 1 :(得分:3)

根据参数提供动态大小的任何东西都不可避免地允许最终用户在服务器上产生合理的(可能超过'通常')CPU活动量,这可能会对您造成问题,具体取决于什么你正在努力实现。正如Oliver所建议的那样,对生成的图像进行缓存将有助于避免两次执行相同的工作,并且绝对应该成为任何动态解决方案的一部分。

我认为你需要考虑动态尺寸调整的重要性。在每种情况下,我已经处理了预定义的尺寸(你的拇指,小,中,大,非常大)工作得很好。同样的缓存注意事项适用,但创建大量图像的可能性要小得多。在上传图像时,我倾向于创建各种图像大小,但是如果没有已创建的按需创建解决方案同样可以正常工作。