System. Rita i Linux

Om du någonsin behövt köra dina .NET Core-applikationer på Linux kanske du har märkt att ett av huvudproblemen är bristen på System.Drawing-montering i standardpaketet .NET Core. Även om Microsoft rekommenderar att du använder System.Drawing.Common, är det inte den ultimata lösningen. Du måste köra ‘sudo’ på varje användardator för att ha libgdiplus-biblioteket installerat. Och även efter det kommer dina renderingsresultat att skilja sig något från de du har på Windows-datorer. För att komma till rätta med det här problemet tar den här artikeln upp hur man använder System.Drawing i Linux utan libgdiplus-bibliotek.

Använder System.Drawing på Linux

Lyckligtvis har vi nu en lösning. Nedan kommer vi att visa hur vårt .NET Graphics API, Aspose.Drawing for .NET, kan hjälpa dig att använda System.Drawing i Linux. Med Aspose.Drawing kan du bli av med grafikbibliotek med inbyggd kod och få dina bilder att se likadana ut på alla plattformar.

.NET Graphics API - Lätt att installera

För installation av Aspose.Drawing på en Linux-målmaskin behöver du bara ha .NET Core installerat. Lägg Aspose.Drawing.dll i din projektmapp och kör programmet. Det är allt. Nu kan du använda klasser i System.Drawing-namnutrymmet precis som du gör det från dina .NET Framework-program på Windows.

För att få Aspose.Drawing binärer, vänligen ladda ner den senaste versionen från den officiella webbplatsen. Alternativt kan du inkludera API:t direkt i ditt projekt genom att köra följande kommando.

dotnet add package Aspose.Drawing

Inga ytterligare komponenter krävs. Aspose.Drawing gör all ritning själv utan att referera till något eget bibliotek. Du kommer aldrig att få meddelanden som:

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

Och du behöver inte bry dig om versionen av grafiksystemet som är installerat på din plattform.

Inga oförutsägbara plattformsproblem

Med System.Drawing.Common kan du få oförutsägbara fel på Linux när du kör kod som kördes framgångsrikt på Windows:

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 är inte beroende av libgdiplus, så du kommer att vara fri från sådana problem. Vi har en fullt hanterad ritmotor vilket innebär att vi inte har några beroenden av inbyggda grafikbibliotek. Du kommer inte längre att stöta på obegripliga plattformsfel och oförutsägbart beteende hos ditt program.

Identiska renderingsresultat

En annan fördel med att använda Aspose.Drawing är identiska renderingsresultat på alla plattformar som stöds. Om du använder System.Drawing.Common i .NET Core kan dina renderingsresultat se annorlunda ut på Windows och Linux, se exemplet nedan.

System. Rita på Linux och Windows

Med Aspose.Drawing kan du skapa plattformsoberoende grafiska applikationer för Windows, Linux eller Android och du kommer alltid att få samma renderingsresultat på varje plattform. Detta uppnåddes genom skapandet av en plattformsoberoende 2D-renderingsmotor istället för att förlita sig på grafikbibliotek från tredje part.

Bortsett från grafiska primitiver är typsnittsrenderingen densamma på alla plattformar. Och även om systemteckensnitt på Linux skiljer sig från Windows, kan du använda PrivateFontCollection för att ladda din egen uppsättning teckensnitt. Ett annat sätt är att installera ett paket med Microsoft-teckensnitt i ett Linux-system och anropa textåtergivningsfunktioner som vanligt.

Prova Aspose.Drawing gratis

Aspose.Drawing finns på NuGet. Du kan också ladda ner binärfiler eller MSI-installationsprogrammet. Du kan använda Aspose.Drawing-biblioteket med begränsningar eller begära en gratis testlicens.

Så varför inte prova det idag?

Slutsats

I den här artikeln har du sett hur enkelt det är att använda System.Drawing på alla plattformar utan några beroenden och få samma resultat. Du kan lära dig mer om Aspose.Drawing på den officiella sidan. För eventuella frågor, använd forum och håll utkik efter framtida inlägg och guider.

Se även