代码之家  ›  专栏  ›  技术社区  ›  Josh Curren

当需要多个尺寸时,如何存储图像?

  •  3
  • Josh Curren  · 技术社区  · 15 年前

    存储图像的最佳方法是什么?目前,当上传一个图像时,我会将它调整为3种不同的大小(缩略图、正常大小和大尺寸)。我将图像的描述、格式保存在数据库中,并使用数据库中的ID号作为图像名称。每个大小的图像都有自己的目录。

    我应该在数据库中存储图像吗?我应该只存储较大的尺寸并根据需要生成缩略图吗?或者你有其他想法吗?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Dave Kilian    15 年前

    你所描述的对我来说是合理的。您可以将这些图像存储在数据库中,但不会注意到任何主要的性能提升,而且,如果您的Web主机限制了MySQL数据库的大小,您可能会发现您对数据库空间的要求过高。

    至于调整图像大小,执行一次并存储三个副本的计算成本要比每个请求生成一次较小的图像低得多;但是,您可能需要考虑让浏览器为您生成缩略图(只需指定一个img标记,并将src设置为全尺寸图像加上宽度/高度属性),这是如果没有那么漂亮的缩略图(浏览器通常以高质量快速缩放图像),就可以节省CPU电源和磁盘空间。

        2
  •  2
  •   Radu094    15 年前

    您可以选择两者的混合,将大图像保存在SQL(或HDD)上。 当被请求时,您可以即时生成缩略图,但在服务器上缓存一定时间。

    这意味着在任何时候,磁盘上都会有最新/最常用的大图像和缩略图。

        3
  •  0
  •   AdamG    15 年前

    如果您有一个Drupal支持的站点,则此功能内置于 http://drupal.org/project/imagecache

    推荐文章