编程语言
首页 > 编程语言> > c# – ASP.NET Core中的服务器端图形

c# – ASP.NET Core中的服务器端图形

作者:互联网

我最近将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版本将在明年公布).

标签:c,asp-net,graphics,asp-net-core,system-drawing
来源: https://codeday.me/bug/20190702/1353672.html