【发布时间】:2011-06-11 20:30:30
【问题描述】:
我有一个网络应用程序,用户可以在其中上传图像。我遇到的当前问题是正在上传的图像以原始格式保存到数据库中。当在网页上使用图像时,这会导致很多性能问题。我使用 dotTrace 来分析应用程序,并且在从数据库处理图像时发现了严重问题。
我的想法是在将图像上传到服务器时调整其大小。以我希望应用程序在用户上传新图像时执行以下示例;
- 用户上传图片
- 正在将图像大小调整为 72 dpi 中 7.500 x 7.500 像素的大小
- 图像正在保存到数据库中
- 原始文件被处理
唯一存储的图像是上面提到的那个,网络应用程序包含动态调整大小的技术。
我已经在这里阅读了几个关于 SO 的主题。他们中的大多数将我指向 ImageMagick 的方向。这个工具在我的公司已经很熟悉了,并且正在 PHP 项目中使用。但是这个工具有什么好的和稳定的发布的 C# 包装器吗?我已经找到了以下工具,但它们要么处于 Beta 版、Alpha 版或当前未更新。
我还在 SO 上找到了 this 主题。在本主题中,提供了以下代码示例;
private static Image CreateReducedImage(Image imgOrig, Size newSize)
{
var newBm = new Bitmap(newSize.Width, newSize.Height);
using (var newGrapics = Graphics.FromImage(newBm))
{
newGrapics.CompositingQuality = CompositingQuality.HighSpeed;
newGrapics.SmoothingMode = SmoothingMode.HighSpeed;
newGrapics.InterpolationMode = InterpolationMode.HighQualityBicubic;
newGrapics.DrawImage(imgOrig, new Rectangle(0, 0, newSize.Width, newSize.Height));
}
return newBm;
}
简而言之,我的问题;
- 使用上述示例在性能方面有什么优势吗?
- 我可以使用 ImageMagick 的良好且可靠的 C# 包装器来执行此操作吗?
欢迎任何其他与表演有关的好建议!
【问题讨论】:
-
imageresizing.net 是要走的路。它经过测试,可靠,并且在低信任度下工作。它可以轻松处理各种格式,并且可以在一行代码中调用。极其灵活且功能强大的库。
标签: c# asp.net asp.net-mvc image-processing