【问题标题】:Can't find Image class in System.Drawing under .NET Core 2.2在 .NET Core 2.2 下的 System.Drawing 中找不到 Image 类
【发布时间】:2019-01-23 21:17:01
【问题描述】:

根据the docs,命名空间System.Drawing 中应该有一个用于缩略图处理的类。我想创建一个具有图像作为属性的模型,然后将其保存到数据库中。但是,当我尝试下面的代码时,我收到一个错误,即在该命名空间中找不到该类,无论文档另有说明。

using System.Drawing;
public class Donkey
{
  public Image Image { get;set; }
}

我错过了什么?!

我用谷歌搜索过,但只找到了old postsexamples that seem not to work

【问题讨论】:

    标签: c# image .net-core


    【解决方案1】:

    尝试安装System.Drawing.Common NuGet 包。这包含Image 和其他相关类型,如Bitmap

    PM> Install-Package System.Drawing.Common
    

    您还可以使用 NuGet 包管理器 UI 进行安装,方法是右键单击 解决方案资源管理器 中的解决方案并选择 管理 NuGet 包...

    添加来自@KonradViltersten的澄清评论:

    传统上,System.Drawing 包含在完整的 .NET 框架中, 但不是 .NET Core,因为 System.Drawing 基于 Windows 绘图 方法。 .NET 核心被设计为独立于平台,因此 不包括任何特定于平台的内容(如绘图)。 由于需要此功能,因此 MS 发布了一个单独的程序集,可以安装该程序集以提供该功能

    【讨论】:

    • 默认情况下 System.Drawing.Printing 似乎相当随机,但 System.Drawing.Image 需要被 nugotten(newgot?得到by nuget?nugetgot?)... 更清晰的文档也会有所帮助。
    • 另外,快速验证我的假设 - 这是管理图像的正确类,对吗?我可以使用 EF 将垃圾直接存储到数据库中。对吗?
    • 这并不奇怪。 System.Drawing.Common,就像描述中说的那样,可以访问 GDI+ 图形。这必须从经典的 .net 重写为 .net core,并且不是 .net core 构建的一部分,而是一个扩展,因为 .net core 是最少的必要组件。我不能代表 .Printing 命名空间,但这是绝对正确的。
    • @ErikFunkenbusch 这措辞非常好。我可以建议您将您的评论复制为已接受答案的一段吗?它会让它变得更加伟大。然后我们可以删除 cmets。
    • 微软原公告的链接会更清楚blogs.msdn.microsoft.com/dotnet/2017/11/16/…
    猜你喜欢
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多