上传图像调整大小

时间:2013-09-05 20:21:41

标签: asp.net asp.net-mvc

我有一张巨大的图片会上传到我的服务器。宽度和高度例如是:2000x2000。我的代码中有多个位置,我需要将图像1000x1000250 x 110或类似100 x 50。当他们上传图片时,我是否应该自动将ASP重新调整为这些尺寸并将其保存在我的网络服务器上,例如image-250x110image-1000x1000image-originalimage-100x50或者是只需通过代码即可获得原始图像并重新调整大小,然后将其显示给用户。我问这个是因为我担心如果有太多人访问你的网站,重新调整原始巨大的图像大小会占用很多处理能力并减慢应用程序的速度。或者这样的事情会没事的:http://www.hanselman.com/blog/NuGetPackageOfWeek11ImageResizerEnablesCleanClearImageResizingInASPNET.aspx

2 个答案:

答案 0 :(得分:1)

您发布的内容ImageResizer将成为您的最佳解决方案,原因有很多,其中包括:

  1. 编写自己的缩放器时存在许多潜在问题,详见20 Image Resizing Pitfalls,包括性能和稳定性问题。
  2. 如果您重新设计自己的网站并希望更改这些图片尺寸......那将会非常痛苦。
  3. 使用ImageResizer,您只有一个图像 - 漂亮的大原始图像。通过URL调用提供(和缓存)所有后续版本。请注意,ImageResizer的可缓存版本需要许可证。
  4. ImageResizer可能会在质量和文件大小方面比图片更好地调整图像大小,并且还带有滤镜,水印和其他功能。
  5. 动态调整是一个非常糟糕的选择,因为它会占用CPU。
  6. 如果您无法支付可缓存版本的费用,您可以使用ImageResizer在上传时调整图像大小,并保存您想要的3个版本左右的图像。
  7. 我已经使用过两种方法 - 编写自己的方法并使用ImageResizer ...在我看来,ImageResizer就是我的选择。

答案 1 :(得分:1)

你肯定希望在上传图像时调整大小,因为调整2000 x 2000像素的大图像很容易花费2秒,即使在快速服务器上也是如此。这是用户不太可能欣赏的延迟。