我有一个web应用程序,用户可以上传图像。目前我遇到的问题是上传的图像以原始格式保存到数据库中。当在网页上使用图像时,这会导致很多性能问题。我使用dotTrace来分析应用程序,并且在从数据库处理图像时发现了重大问题。C#mvc图像上传调整大小服务器端
我的想法是在图像上传到服务器时调整图像大小。以下面的例子,我想让应用程序在用户上传新图片时执行;
- 用户上传的图像
- 图像被调整为7.500 X 7.500在像素的尺寸在72 DPI
- 图像被保存到
- 原始文件被设置 数据库
唯一存储的图像是上面提到的图像,并且web应用程序包含用于动态调整此大小的技术。
我已经在SO上阅读过几个主题。他们中的大多数将我指向ImageMagick的方向。这个工具在我的公司已经很熟悉了,并在PHP项目中使用。但是这个工具有没有好的和稳定的C#包装器?我已经找到了下面的工具,但它们要么是Béta版本,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#包装我可以用来做到这一点?
欢迎与演出有关的任何其他好的提示!
http://imageresizing.net是要走的路。它经过测试,可靠,工作信任度低。它可以轻松处理各种格式,并可以在单行代码中调用。非常灵活和有能力的图书馆。 – 2011-07-16 17:26:28