System.Drawing di Linux

Jika Anda pernah menjalankan aplikasi .NET Core di Linux, Anda mungkin menyadari bahwa salah satu masalah utama adalah kurangnya rakitan System.Drawing dalam paket .NET Core standar. Meskipun Microsoft merekomendasikan untuk menggunakan System.Drawing.Common, itu bukanlah solusi akhir. Anda harus menjalankan ‘sudo’ pada setiap mesin pengguna untuk menginstal perpustakaan libgdiplus. Dan bahkan setelah itu, hasil rendering Anda akan sedikit berbeda dari yang Anda miliki di mesin Windows. Untuk mengatasi masalah ini, artikel ini membahas cara menggunakan System.Drawing di Linux tanpa pustaka libgdiplus.

Menggunakan System.Drawing di Linux

Untungnya, sekarang kami punya solusinya. Di bawah ini kami akan mendemonstrasikan bagaimana .NET Graphics API kami, Aspose.Drawing for .NET, dapat membantu Anda menggunakan System.Drawing di Linux. Menggunakan Aspose.Drawing, Anda dapat menghapus pustaka grafis dengan kode asli dan membuat gambar Anda terlihat sama di semua platform.

.NET Graphics API - Mudah Diinstal

Untuk menginstal Aspose.Drawing pada mesin Linux target, Anda hanya perlu menginstal .NET Core. Letakkan Aspose.Drawing.dll di folder proyek Anda dan jalankan program. Itu saja. Sekarang Anda dapat menggunakan kelas di ruang nama System.Drawing seperti yang Anda lakukan dari aplikasi .NET Framework di Windows.

Untuk mendapatkan binari Aspose.Drawing, silakan unduh versi terbaru dari situs resminya. Sebagai alternatif, Anda dapat menyertakan API secara langsung dalam proyek Anda dengan menjalankan perintah berikut.

dotnet add package Aspose.Drawing

Tidak diperlukan komponen tambahan. Aspose.Drawing melakukan semua gambar itu sendiri tanpa mereferensikan perpustakaan asli apa pun. Anda tidak akan pernah menerima pesan seperti:

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

Dan Anda tidak perlu peduli dengan versi sistem grafis yang terpasang di platform Anda.

Tidak Ada Masalah Platform yang Tidak Dapat Diprediksi

Dengan System.Drawing.Common Anda bisa mendapatkan kesalahan tak terduga di Linux saat menjalankan kode yang berhasil dijalankan di 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 tidak bergantung pada libgdiplus, jadi Anda akan bebas dari masalah seperti itu. Kami memiliki mesin gambar yang terkelola sepenuhnya yang berarti bahwa kami tidak memiliki ketergantungan pada pustaka grafik asli. Anda tidak akan lagi menemukan kesalahan platform yang tidak dapat dipahami dan perilaku program Anda yang tidak dapat diprediksi.

Hasil Rendering Identik

Manfaat lain menggunakan Aspose.Drawing adalah hasil rendering yang identik pada semua platform yang didukung. Jika Anda menggunakan System.Drawing.Common di .NET Core, hasil rendering Anda mungkin terlihat berbeda di Windows dan Linux, lihat contoh di bawah ini.

System.Drawing di Linux dan Windows

Dengan Aspose.Drawing Anda dapat membuat aplikasi grafik lintas platform untuk Windows, Linux, atau Android dan Anda akan selalu mendapatkan hasil rendering yang sama di setiap platform. Ini dicapai dengan pembuatan mesin rendering 2D yang tidak bergantung pada platform alih-alih mengandalkan pustaka grafis pihak ketiga.

Selain primitif grafis, rendering font sama di semua platform. Dan meskipun font sistem di Linux berbeda dari Windows, Anda dapat menggunakan PrivateFontCollection untuk memuat kumpulan font Anda sendiri. Cara lain adalah menginstal paket font Microsoft ke dalam sistem Linux dan memanggil fungsi rendering teks seperti biasa.

Coba Aspose.Drawing Gratis

Aspose.Drawing tersedia di NuGet. Anda juga dapat mengunduh binari atau penginstal MSI. Anda dapat menggunakan pustaka Aspose.Drawing dengan batasan atau meminta lisensi uji coba gratis.

Jadi mengapa tidak mencobanya hari ini?

Kesimpulan

Pada artikel ini, Anda telah melihat betapa mudahnya menggunakan System.Drawing di semua platform tanpa ketergantungan apa pun dan mendapatkan hasil yang sama. Anda dapat mempelajari lebih lanjut tentang Aspose.Drawing di [halaman] resmi 9. Untuk pertanyaan apa pun, silakan gunakan forum dan nantikan postingan dan panduan selanjutnya.

Lihat juga