2

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

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

任何帮助表示赞赏。

4

5 回答 5

12

将缩略图保存到磁盘。图像处理会占用大量资源,并且根据图像的大小,可能会超过 php.ini 的默认允许内存限制。如果您拥有自己的服务器并且只运行您的应用程序,那么这不是一个问题,但它仍然需要大量的 CPU 功率和内存来调整图像大小。如果您正在考虑即时创建缩略图,则无需进行太多更改 - 在第一次请求时,从源文件创建缩略图,将其保存到磁盘,然后在后续请求时从磁盘读取它。

于 2008-09-19T17:06:55.087 回答
2

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

于 2008-09-19T21:54:12.230 回答
1

缓存缩略图会好得多。动态生成它们会对系统造成很大的负担。

于 2008-09-19T17:04:00.633 回答
1

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

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

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

或者,如果您想变得花哨,您可以优化处理任一访问模式,方法是在第一次需要时动态生成图像,然后再显示预生成的图像,直到它从更改生成的数据,此时您将其删除,以便下次需要时重新生成它。但这对于像缩略图这样静态的东西,IMO 来说太过分了。

于 2008-09-19T17:12:23.890 回答
0

查看gd 库imagemagick

于 2008-09-19T17:02:20.840 回答