Linux'ta System.Drawing

.NET Core uygulamalarınızı Linux’ta çalıştırmak zorunda kaldıysanız, ana sorunlardan birinin standart .NET Core paketinde System.Drawing derlemesinin olmaması olduğunu fark etmişsinizdir. Microsoft, System.Drawing.Common kullanımını önerse de nihai çözüm bu değildir. libgdiplus kitaplığının kurulu olması için her kullanıcı makinesinde ‘sudo’ çalıştırmanız gerekir. Ve bundan sonra bile, işleme sonuçlarınız Windows makinelerinde sahip olduklarınızdan biraz farklı olacaktır. Bu sorunla başa çıkmak için, bu makale System.Drawing’in Linux’ta libgdiplus kitaplığı olmadan nasıl kullanılacağını ele almaktadır.

System.Drawing’i Linux’ta Kullanma

Neyse ki artık bir çözümümüz var. Aşağıda, .NET Graphics API’miz Aspose.Drawing for .NET‘in Linux’ta System.Drawing’i kullanmanıza nasıl yardımcı olabileceğini göstereceğiz. Aspose.Drawing’i kullanarak yerel kodlu grafik kitaplıklarından kurtulabilir ve görsellerinizin tüm platformlarda aynı görünmesini sağlayabilirsiniz.

.NET Graphics API - Kurulumu Kolay

Aspose.Drawing’in hedef bir Linux makinesine kurulumu için .NET Core’un kurulu olması yeterlidir. Aspose.Drawing.dll dosyasını proje klasörünüze atın ve programı çalıştırın. Bu kadar. Artık System.Drawing ad alanındaki sınıfları tıpkı Windows’taki .NET Framework uygulamalarınızdan yaptığınız gibi kullanabilirsiniz.

Aspose.Drawing ikili dosyalarını edinmek için lütfen resmi web sitesinden en son sürümü indirin. Alternatif olarak, aşağıdaki komutu çalıştırarak API’yi doğrudan projenize dahil edebilirsiniz.

dotnet add package Aspose.Drawing

Ek bileşen gerekmez. Aspose.Drawing, herhangi bir yerel kitaplığa başvurmadan tüm çizimi kendisi yapar. Asla aşağıdaki gibi mesajlar almayacaksınız:

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

Ve platformunuzda yüklü olan grafik sisteminin sürümünü umursamanıza gerek yok.

Öngörülemeyen Platform Sorunu Yok

System.Drawing.Common ile, Windows’ta başarıyla çalıştırılan bir kodu çalıştırırken Linux’ta öngörülemeyen hatalar alabilirsiniz:

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 libgdiplus’a bağlı değildir, dolayısıyla bu tür problemlerden kurtulursunuz. Tamamen yönetilen bir çizim motorumuz var, bu da yerel grafik kitaplıklarına bağımlılığımız olmadığı anlamına geliyor. Artık anlaşılmaz platform hatalarıyla ve programınızın öngörülemeyen davranışıyla karşılaşmayacaksınız.

Özdeş İşleme Sonuçları

Aspose.Drawing kullanmanın bir diğer avantajı da desteklenen tüm platformlarda aynı sonuçların elde edilmesidir. .NET Core’da System.Drawing.Common kullanıyorsanız, işleme sonuçlarınız Windows ve Linux’ta farklı görünebilir, aşağıdaki örneğe bakın.

Linux ve Windows'ta System.Drawing

Aspose.Drawing ile Windows, Linux veya Android için platformlar arası grafik uygulamaları oluşturabilirsiniz ve her platformda her zaman aynı işleme sonuçlarını alırsınız. Bu, 3. taraf grafik kitaplıklarına güvenmek yerine platformdan bağımsız bir 2B işleme motorunun oluşturulmasıyla sağlandı.

Grafik ilkellerin yanı sıra, yazı tipi oluşturma tüm platformlarda aynıdır. Linux’taki sistem yazı tipleri Windows’tan farklı olsa da, kendi yazı tiplerinizi yüklemek için PrivateFontCollection’ı kullanabilirsiniz. Başka bir yol da, bir Linux sistemine bir Microsoft yazı tipi paketi yüklemek ve her zamanki gibi metin işleme işlevlerini çağırmaktır.

Aspose.Drawing’i Ücretsiz Deneyin

Aspose.Drawing, NuGet üzerinde mevcuttur. Ayrıca ikili dosyaları veya MSI yükleyicisini indirebilirsiniz. Aspose.Drawing kütüphanesini kısıtlamalarla kullanabilir veya [ücretsiz deneme lisansı] talep edebilirsiniz]8.

Öyleyse neden bugün denemiyorsunuz?

Çözüm

Bu yazıda, System.Drawing’i herhangi bir bağımlılık olmadan tüm platformlarda kullanmanın ve aynı sonucu almanın ne kadar kolay olduğunu gördünüz. Aspose.Drawing hakkında daha fazla bilgiyi resmi sayfada bulabilirsiniz. Sorularınız için lütfen forumu kullanın ve gelecekteki gönderiler ve kılavuzlar için bizi izlemeye devam edin.

Ayrıca bakınız