System.Zeichnen unter Linux

Wenn Sie Ihre .NET Core Anwendungen jemals unter Linux ausführen mussten, ist Ihnen vielleicht aufgefallen, dass eines der Hauptprobleme das Fehlen der Assembly System.Drawing im standardmäßigen .NET Core-Paket ist. Auch wenn Microsoft die Verwendung von System.Drawing.Common empfiehlt, ist dies nicht die ultimative Lösung. Sie müssen „sudo“ auf jedem Benutzercomputer ausführen, um die libgdiplus Bibliothek zu installieren. Und selbst danach unterscheiden sich Ihre Rendering-Ergebnisse leicht von denen auf Windows-Rechnern. Um dieses Problem zu lösen, behandelt dieser Artikel die Verwendung von System.Drawing unter Linux ohne die libgdiplus Bibliothek.

Verwenden von System.Drawing unter Linux

Zum Glück haben wir jetzt eine Lösung. Im Folgenden zeigen wir, wie unsere .NET-Grafik-API Aspose.Drawing for .NET Ihnen bei der Verwendung von System.Drawing unter Linux helfen kann. Mit Aspose.Drawing können Sie Grafikbibliotheken mit nativem Code loswerden und Ihre Bilder auf allen Plattformen gleich aussehen lassen.

.NET-Grafik-API – einfach zu installieren

Für die Installation von Aspose.Drawing auf einem Linux-Zielcomputer muss lediglich .NET Core installiert sein. Legen Sie Aspose.Drawing.dll in Ihren Projektordner und führen Sie das Programm aus. Das ist alles. Jetzt können Sie Klassen im System.Drawing-Namespace genauso verwenden wie in Ihren .NET Framework Anwendungen unter Windows.

Um Aspose.Drawing-Binärdateien zu erhalten, laden Sie bitte die neueste Version von der offiziellen Website herunter. Alternativ können Sie die API direkt in Ihr Projekt einbinden, indem Sie den folgenden Befehl ausführen.

dotnet add package Aspose.Drawing

Es sind keine zusätzlichen Komponenten erforderlich. Aspose.Drawing führt die gesamte Zeichnung selbst durch, ohne auf eine native Bibliothek zu verweisen. Sie erhalten niemals Nachrichten wie:

Unable to load DLL 'libgdiplus': The specified module could not be found.

Und Sie müssen sich nicht um die Version des Grafiksystems kümmern, die auf Ihrer Plattform installiert ist.

Keine unvorhersehbaren Plattformprobleme

Mit System.Drawing.Common können unter Linux unvorhersehbare Fehler auftreten, wenn Code ausgeführt wird, der unter Windows erfolgreich ausgeführt wurde:

WARNING *: Path conversion requested 34759680 bytes (2480 x 3504). Maximum size is 8388608 bytes.
ERROR:region.c:1155:GdipCombineRegionPath: assertion failed: (region->bitmap)

Aspose.Drawing hängt nicht von libgdiplus ab, also werden Sie solche Probleme nicht haben. Wir haben eine vollständig verwaltete Zeichen-Engine, was bedeutet, dass wir keine Abhängigkeiten von nativen Grafikbibliotheken haben. Sie werden nicht länger auf unverständliche Plattformfehler und unvorhersehbares Verhalten Ihres Programms stoßen.

Identische Rendering-Ergebnisse

Ein weiterer Vorteil der Verwendung von Aspose.Drawing sind identische Rendering-Ergebnisse auf allen unterstützten Plattformen. Wenn Sie System.Drawing.Common in .NET Core verwenden, sehen Ihre Rendering-Ergebnisse unter Windows und Linux möglicherweise anders aus, siehe Beispiel unten.

System.Drawing unter Linux und Windows

Mit Aspose.Drawing können Sie plattformübergreifende Grafikanwendungen für Windows, Linux oder Android erstellen und erhalten auf jeder Plattform immer die gleichen Rendering-Ergebnisse. Dies wurde durch die Erstellung einer plattformunabhängigen 2D-Rendering-Engine erreicht, anstatt sich auf Grafikbibliotheken von Drittanbietern zu verlassen.

Abgesehen von grafischen Primitiven ist das Font-Rendering auf allen Plattformen gleich. Und obwohl sich Systemschriftarten unter Linux von Windows unterscheiden, können Sie PrivateFontCollection verwenden, um Ihre eigenen Schriftarten zu laden. Eine andere Möglichkeit besteht darin, ein Paket mit Microsoft-Schriftarten in einem Linux-System zu installieren und wie gewohnt Textwiedergabefunktionen aufzurufen.

Probieren Sie Aspose.Drawing kostenlos aus

Aspose.Drawing ist auf NuGet verfügbar. Sie können auch Binärdateien oder das MSI-Installationsprogramm herunterladen. Sie können die Aspose.Drawing Bibliothek mit Einschränkungen verwenden oder eine kostenlose Testlizenz anfordern.

Warum also nicht gleich heute probieren?

Fazit

In diesem Artikel haben Sie gesehen, wie einfach es ist, System.Drawing auf allen Plattformen ohne Abhängigkeiten zu verwenden und das gleiche Ergebnis zu erzielen. Mehr über Aspose.Drawing erfahren Sie auf der offiziellen Seite. Verwenden Sie bei Fragen bitte das Forum und bleiben Sie dran für zukünftige Posts und Leitfäden.

Siehe auch