2015-10-26 21 views
34

Ho aggiornato il mio progetto da .NET 4.5 a .NET Core (con ASP.NET Core). Nella mia versione precedente avevo un codice molto semplice che utilizzava l'oggetto bitmap da System.Drawing per ridimensionare un'immagine.Manipolazione di immagini con .NET Core

Come ho capito System.Drawing non può essere utilizzato in .NET Core perché non è multipiattaforma, ma cosa può essere usato al suo posto?

Ho cercato su Google e non riesco a trovare nulla. L'unica cosa che riesco a trovare è il post this, che non ha codice su cosa sia mai stato così.

+0

Trovato [questo] (http://imageresizing.net/) sul github che hai collegato. Utile? – SimpleVar

+0

Possibile duplicato di [Ridimensiona immagini con MVC 6 su Ubuntu con ASP.NET 5 su Mono] (http://stackoverflow.com/questions/36643720/resize-images-with-mvc-6-on-ubuntu-running-asp -net-5-on-mono) –

+0

Per quanto ne so, il team di .NET (Core) sta ancora discutendo di questo con il team Xamarin. Xamarin ha creato una libreria chiamata SkiaSharp che è un wrapper per la libreria Skia multipiattaforma che è ancora una volta la libreria grafica di Google Chrome. Funziona con Android, iOS, Linux, Windows, ecc. Che lo rendono perfetto per .NET Core. Ma a partire da oggi, non hanno finito per .NET Core (https://blog.xamarin.com/cross-platform-2d-graphics-with-skiasharp/). Le mie scommesse vanno, che questa libreria sarà la storia futura per .NET Core e il disegno. – Thomas

risposta

27

Disclaimer: Questo è il mio software.

Sto lavorando su una libreria di grafica 2D multipiattaforma che gira su .NET Core Attualmente è alfa ma supporta già un set di funzionalità completo.

https://github.com/JimBobSquarePants/ImageSharp

Esempio di utilizzo.

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

Che ne dici di disegnare su un canvas OS specifico? qualcuno l'ha estratto dal sistema operativo? – eschneider

+0

Intendi come una struttura dell'interfaccia utente? https://github.com/AvaloniaUI/Avalonia –

+0

TK ha una libreria .Net Core per la grafica. Mi aspetto che alla fine una lib di UI possa avvolgere TK. – IAbstract

16

ho trovato un'implementazione di System.Drawing per NET core sulla base di fonti di Mono mantenimento in:

Il pacchetto NuGet e ':

Che si può fare riferimento a esso in del project.json con il .NET Nucleo App:

{ 
    "dependencies": { 
    "CoreCompat.System.Drawing": "1.0.0-beta006", 
    ... 
    }, 
} 
+2

Questo è un software prerelease, quindi assicurati di aver spuntato la casella "mostra prerelease". – user3791372

Problemi correlati