我最近将 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,....
既然没有System.Drawing
在.NET Core中,还有其他库可以实现这一点吗?
正如 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://msdn.microsoft.com/en-us/library/system.drawing(v=vs.110).aspx)。有关此主题的一些背景信息位于https://github.com/imazen/Graphics-vNext https://github.com/imazen/Graphics-vNext.
我建议使用当前版本的 ImagerResizing 4.0.5 并在几个月后升级(第一个稳定的 vNext 版本将于明年发布)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)