إذا كان عليك تشغيل تطبيقات .NET Core على نظام Linux ، فربما تكون قد لاحظت أن إحدى المشكلات الرئيسية هي عدم وجود تجميع System.Drawing في حزمة .NET Core القياسية. على الرغم من أن Microsoft توصي باستخدام System.Drawing.Common ، فإن هذا ليس هو الحل النهائي. يجب تشغيل “sudo” على كل جهاز مستخدم لتثبيت مكتبة libgdiplus. وحتى بعد ذلك ، ستكون نتائج العرض مختلفة قليلاً عن تلك الموجودة على أجهزة Windows. للتعامل مع هذه المشكلة ، تتناول هذه المقالة كيفية استخدام System.Drawing في Linux بدون مكتبة libgdiplus.
- باستخدام System.Drawing على لينكس
- .NET Graphics API - سهل التثبيت
- لا توجد مشكلات غير متوقعة في النظام الأساسي
- نتائج التقديم متطابقة
- جرب Aspose.Drawing مجانًا
- استنتاج
باستخدام System.Drawing على لينكس
لحسن الحظ ، لدينا الآن حل. سنوضح أدناه كيف يمكن أن تساعدك واجهة برمجة تطبيقات .NET Graphics API ، Aspose.Drawing for .NET ، في استخدام System.Drawing في Linux. باستخدام Aspose.Drawing ، يمكنك التخلص من مكتبات الرسومات ذات التعليمات البرمجية الأصلية وجعل صورك تبدو متشابهة على جميع الأنظمة الأساسية.
.NET Graphics API - سهل التثبيت
لتثبيت Aspose.Drawing على جهاز Linux مستهدف ، تحتاج فقط إلى تثبيت .NET Core. ضع Aspose.Drawing.dll في مجلد المشروع الخاص بك وقم بتشغيل البرنامج. هذا كل شئ. يمكنك الآن استخدام الفئات في System.Drawing مساحة الاسم تمامًا كما تفعل من تطبيقات .NET Framework على Windows.
للحصول على ثنائيات Aspose.Drawing ، يرجى تنزيل أحدث إصدار من الموقع الرسمي. بدلاً من ذلك ، يمكنك تضمين API مباشرة في مشروعك عن طريق تشغيل الأمر التالي.
dotnet add package Aspose.Drawing
لا توجد مكونات إضافية مطلوبة. Aspose.Drawing يقوم بكل الرسم نفسه دون الرجوع إلى أي مكتبة أصلية. لن تتلقى رسائل مثل:
Unable to load DLL 'libgdiplus': The specified module could not be found.
ولا يتعين عليك الاهتمام بإصدار نظام الرسومات المثبت على النظام الأساسي الخاص بك.
لا توجد مشكلات غير متوقعة في النظام الأساسي
باستخدام System.Drawing.Common ، يمكنك الحصول على أخطاء غير متوقعة على Linux عند تشغيل التعليمات البرمجية التي تم تشغيلها بنجاح على 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 لا يعتمد على libgdiplus ، لذلك ستكون خاليًا من مثل هذه المشاكل. لدينا محرك رسم مُدار بالكامل مما يعني أنه ليس لدينا أي تبعيات على مكتبات الرسومات الأصلية. لن تواجه بعد الآن أخطاء غير مفهومة في النظام الأساسي وسلوكًا غير متوقع لبرنامجك.
نتائج التقديم متطابقة
فائدة أخرى لاستخدام Aspose.Drawing هي نتائج تقديم متطابقة على جميع المنصات المدعومة. إذا كنت تستخدم System.Drawing.Common في .NET Core ، فقد تبدو نتائج العرض مختلفة على نظامي التشغيل Windows و Linux ، انظر المثال أدناه.
باستخدام Aspose.Drawing ، يمكنك إنشاء تطبيقات رسومية عبر الأنظمة الأساسية لنظام التشغيل Windows أو Linux أو Android وستحصل دائمًا على نفس نتائج العرض على كل نظام أساسي. تم تحقيق ذلك من خلال إنشاء محرك عرض ثنائي الأبعاد مستقل عن النظام الأساسي بدلاً من الاعتماد على مكتبات رسومات الطرف الثالث.
بصرف النظر عن العناصر الأولية الرسومية ، فإن عرض الخط هو نفسه عبر جميع الأنظمة الأساسية. وعلى الرغم من اختلاف خطوط النظام على Linux عن Windows ، يمكنك استخدام PrivateFontCollection لتحميل مجموعة الخطوط الخاصة بك. هناك طريقة أخرى تتمثل في تثبيت حزمة من خطوط Microsoft في نظام Linux واستدعاء وظائف عرض النص كالمعتاد.
جرب Aspose.Drawing مجانًا
Aspose.Drawing متاح على NuGet. يمكنك أيضًا تنزيل ثنائيات أو مثبت MSI. يمكنك استخدام مكتبة Aspose.Drawing مع قيود أو طلب ترخيص إصدار تجريبي مجاني.
فلماذا لا تجربها اليوم؟
استنتاج
في هذه المقالة ، رأيت مدى سهولة استخدام System.Drawing على جميع الأنظمة الأساسية دون أي تبعيات والحصول على نفس النتيجة. يمكنك معرفة المزيد حول Aspose.Drawing على الصفحة الرسمية. لأية أسئلة ، يرجى استخدام المنتدى وترقب المشاركات والأدلة في المستقبل.