webentwicklung-frage-antwort-db.com.de

Bearbeiten von Bildern mit .NET Core

Ich habe mein Projekt von .NET 4.5 auf .NET Core aktualisiert (mit ASP.NET Core). Ich hatte in meiner vorherigen Version einen sehr einfachen Code, der das Bitmap-Objekt aus System.Drawing, um die Größe eines Bildes zu ändern.

Wie ich es verstehe System.Drawing kann in .NET Core nicht verwendet werden, da es nicht plattformübergreifend ist. Was kann stattdessen verwendet werden?

Ich habe das gegoogelt und kann nichts finden. Das einzige, was ich finden kann, ist this post, auf dem noch kein Code steht.

58
Gillardo

Haftungsausschluss: Dies ist meine Software.

Ich arbeite an einer plattformübergreifenden 2D-Grafikbibliothek, die auf .NET Core ausgeführt wird. Es ist derzeit Alpha, unterstützt jedoch bereits einen umfassenden Funktionsumfang.

https://github.com/JimBobSquarePants/ImageSharp

Anwendungsbeispiel.

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);
}
32
James South

Sie können jetzt das offizielle (von Microsoft) System.Drawing.Common NuGet-Paket verwenden.

28

Ich habe eine Implementierung von System.Drawing für .NET Core gefunden, die auf Monos Quellen basiert und unter folgender Adresse verwaltet wird:

Das NuGet-Paket ist bei:

Worauf Sie in Ihrer .NET Core App verweisen können project.json mit:

{
  "dependencies": {
    "CoreCompat.System.Drawing": "1.0.0-beta006",
    ...
  },
}
16
mythz