2015-10-26 27 views
34

我已將.NET 4.5的項目更新爲.NET Core(使用ASP.NET Core)。我之前的版本中有一些非常簡單的代碼,它使用System.Drawing中的位圖對象調整圖像大小。使用.NET Core操作圖像

據我所知System.Drawing不能在.NET Core中使用,因爲它不是跨平臺的,但可以用什麼來代替?

我已經使用此搜索並找不到任何東西。我能找到的唯一的東西是this後,它沒有任何代碼。

+0

在你關聯的github上找到[this](http://imageresizing.net/)。有用嗎? – SimpleVar

+0

[在Mono上運行ASP.NET 5的Ubuntu上使用MVC 6調整圖像大小]可能的副本(http://stackoverflow.com/questions/36643720/resize-images-with-mvc-6-on-ubuntu-running-asp -net-5-on-mono) –

+0

據我瞭解,.NET(Core)團隊仍在與Xamarin團隊討論這個問題。 Xamarin建立了一個名爲SkiaSharp的庫,它是跨平臺的Skia庫的一個包裝,它又是Google Chrome的圖形庫。它運行在Android,iOS,Linux,Windows等下,這將使它成爲.NET Core的完美搭配。但截至今天,他們還沒有完成它的.NET核心(https://blog.xamarin.com/cross-platform-2d-graphics-with-skiasharp/)。我的下注是,這個圖書館將成爲.NET Core和繪圖的未來故事。 – Thomas

回答

27

聲明:這是我的軟件。

我正在研究在.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); 
} 
+0

那麼在特定的操作系統畫布上繪畫呢?有沒有人從操作系統中抽象出來? – eschneider

+0

你的意思是像一個UI框架? https://github.com/AvaloniaUI/Avalonia –

+0

TK有一個用於圖形的.Net核心庫。我最終期望一個UI庫,但它可能會包裝TK。 – IAbstract