使用.NET Core操作图像

Gil*_*rdo 60 c# system.drawing .net-core asp.net-core

我已将我的项目从.NET 4.5更新到.NET Core(使用ASP.NET Core).我在之前的版本中有一些非常简单的代码,它使用位图对象System.Drawing来调整图像大小.

据我所知System.Drawing,不能在.NET Core中使用,因为它不是跨平台的,但可以使用什么呢?

我用Google搜索了一下,找不到任何东西.我唯一能找到的就是这篇文章,它上面没有任何代码.

Jam*_*uth 34

免责声明:这是我的软件.

我正在开发一个在.NET Core上运行的跨平台2D图形库它目前是alpha版,但已经支持全面的功能集.

https://github.com/JimBobSquarePants/ImageSharp

用法示例.

using (FileStream stream = File.OpenRead("foo.jpg"))
using (FileStream output = File.OpenWrite("bar.jpg"))
{
    Image image = new Image(stream);
    image.Resize(image.Width / 2, image.Height / 2)
         .Greyscale()
         .Save(output);
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,ImageSharp 更改了其许可证,并且如果您的公司年收入超过 100 万美元,则需要付费 (2认同)

Vad*_*kov 30

您现在可以使用官方(来自Microsoft)的System.Drawing.Common NuGet包.


myt*_*thz 16

我发现了一个基于Mono源代码的System.Drawing for .NET Core的实现:

NuGet包位于:

您可以在.NET Core App中project.json使用以下内容引用它:

{
  "dependencies": {
    "CoreCompat.System.Drawing": "1.0.0-beta006",
    ...
  },
}
Run Code Online (Sandbox Code Playgroud)

  • 这是预发布软件,因此请确保勾选"show prerelease"框. (2认同)