对于托管网络应用程序的图像:

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

感谢任何帮助。

有帮助吗?

解决方案

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

其他提示

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

缓存缩略图会好得多。即时生成它们对系统非常重要。

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

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

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

或者,如果你想获得幻想,你可以通过在第一次需要时动态生成图像然后再显示预先生成的图像来优化处理访问模式,直到它生成的数据为止从更改中删除它,以便在下次需要时重新生成。但对于像缩略图一样静态的东西,IMO可能会有点过分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top