【问题标题】:Proper way to resize image调整图像大小的正确方法
【发布时间】:2012-12-08 15:40:12
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 简而言之,我的问题是:您将使用什么方式来实现带有缓存的图像大小调整?上述版本之一或不同的方法?

标签: c# asp.net-mvc image


【解决方案1】:

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

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

希望对你有帮助

【讨论】:

  • 谢谢你的意见。如果我创建手动 url,我会遇到很多缓存问题。而且我直接调用缓存的图片时也不必访问数据库。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多