0

我想正确地实现一种调整图像大小并缓存它的方法。Atm 我有两种方法来实现这一点:

1 即时调整大小: - 创建一个包含控制器位置、宽度和高度的 url - 如果不存在缓存版本,控制器将创建图像 - 控制器将提供缓存版本

2 首先调整大小,稍后提供: - 如果不存在缓存版本,则创建一个图像并返回一个 url 以提供缓存的图像(使用自定义 htmlhelper?) - 该 url 将调用控制器。控制器将只提供给定的缓存图像

你会用什么方法来实现带有缓存的图像大小调整?上述版本之一或不同的方法?

我最喜欢“先调整大小,后服务”的方法。因为您不必在 url 中使用宽度和高度。但是“即时调整大小”的优点是您将所有图像处理代码放在一个地方

4

2 回答 2

1

我首先同意调整大小。事实上,如果你缓存图像,当缓存过期时,你将不得不重新计算。如果替换图像会发生什么?您将不得不处理可能很棘手的缓存失效。最后,您仍然可以使用 OutputCache 属性使缓存受益。我能看到的唯一缺点是您需要更多的磁盘空间,因为您将存储原始图像和调整大小的图像。

这是关于如何调整图像大小的完整文章:http: //www.codeproject.com/Articles/191424/Resizing-an-Image-On-The-Fly-using-NET

希望这可以帮助

于 2012-12-06T12:31:34.857 回答
0

我会先调整大小,然后再提供服务,特别是如果您的网站使用 CDN 进行缓存。你见过MVC 的 Image Resizer吗?我正在考虑使用它来解决这个问题。

于 2012-12-06T11:27:17.317 回答