我最近将ASP.NET MVC应用程序从ASP.NET升级到ASP.NET Core.
在我的控制器操作中,我有一段代码依赖于System.Drawing来创建个人资料图片
using (FileStream stream = new FileStream(HttpContext.Server.MapPath($"~/Content/UserFiles/{AuthenticatedUser.Id.ToString()}.jpg"), FileMode.OpenOrCreate))
{
Image image = Image.FromStream(model.DisplayPicture.InputStream);
image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
图像数据作为Base64编码图像发布到服务器
data:image/png;base64,....
由于.NET Core中没有System.Drawing,是否还有其他库可以实现这一目标?
最佳答案 正如Stanislav指出的那样,当前的解决方案是在完整的.NET框架上使用ASP.NET Core. System.Drawing依赖于GDI调用,因此绑定到Windows.
Imazen的vnext版本的Image Resizer将基于新的imageflow项目解决这个问题. System.Drawing不应该在像ASP.NET这样的服务器环境中使用(在https://msdn.microsoft.com/en-us/library/system.drawing(v=vs.110).aspx上指出).关于这个主题的一些背景是在https://github.com/imazen/Graphics-vNext提供的.
我建议使用当前版本4.0.5的ImagerResizing并在几个月内升级(第一个稳定的vNext版本将在明年公布).