代码之家  ›  专栏  ›  技术社区  ›  Jason

PHP/JS-动态创建缩略图或存储为文件

  •  2
  • Jason  · 技术社区  · 17 年前

    对于图像托管web应用程序:

    对于我存储的图像,是否可以使用PHP(或其他任何东西)动态创建缩略图,或者我应该将一个或多个不同大小的缩略图保存到磁盘上并加载它们?

    任何帮助都将不胜感激。

    5 回复  |  直到 8 年前
        1
  •  12
  •   pilsetnieks    17 年前

    将缩略图保存到磁盘。图像处理需要大量资源,并且根据图像的大小,可能会超过php的默认允许内存限制。如果你有自己的服务器,只有你的应用程序在运行,但调整图像大小仍然需要大量的cpu和内存,那么这就不那么重要了。如果你正在考虑动态创建缩略图,你不必做太多更改——在第一次请求时,从源文件创建缩略图,将其保存到磁盘,在后续请求时,只需从磁盘上读取即可。

        2
  •  2
  •   fistameeny    17 年前

    我用 phpThumb 因为这是两全其美的。您可以动态创建缩略图,但它会自动缓存图像以加快未来的请求。它为GD和ImageMagick库创建了一个很好的包装器。值得一看!

        3
  •  1
  •   Vincent McNabb    17 年前

    最好把缩略图缓存起来。即时生成它们将对系统造成极大的压力。

        4
  •  1
  •   Dave Sherohman    17 年前

    这取决于网站的使用模式,但基本上,你希望每张图片被查看多少次?

    就缩略图而言,它们很可能会存在很长一段时间(图像只上传一次,从未更改,因此缩略图也不会更改),因此在上传完整图像时生成并存储它们以备后用通常是值得的。除非网站完全瘫痪,否则它们在其生命周期内将被查看许多(数百或数千)次,而且现在磁盘比延迟便宜得多。当然,随着服务器负载的增加,这一点也变得更加重要。

    相反,对于每小时更新一次的股票图表(如果不是更频繁的话),在这种情况下,你最好动态创建它们,以避免浪费CPU时间不断生成用户永远看不到的图像。

    或者,如果你想变得花哨,你可以通过在第一次需要时动态生成图像,然后在之后显示预先生成的图像,直到它从更改中生成的数据,在这一点上删除它,以便在下次需要时重新生成,从而优化处理任何一种访问模式。但在我看来,对于像缩略图这样静态的东西来说,这太过分了。

        5
  •  0
  •   ethyreal    17 年前