System.Drawing در لینوکس

اگر مجبور شدید برنامه‌های NET Core خود را بر روی لینوکس اجرا کنید، ممکن است متوجه شده باشید که یکی از مشکلات اصلی عدم مونتاژ System.Drawing در بسته NET Core استاندارد است. حتی اگر مایکروسافت استفاده از System.Drawing.Common را توصیه می کند، این راه حل نهایی نیست. برای نصب کتابخانه libgdiplus باید ‘sudo’ را روی هر ماشین کاربر اجرا کنید. و حتی پس از آن، نتایج رندر شما کمی با نتایجی که در دستگاه های ویندوز دارید متفاوت خواهد بود. برای مقابله با این موضوع، این مقاله نحوه استفاده از System.Drawing در لینوکس بدون کتابخانه libgdiplus را پوشش می دهد.

استفاده از System.Drawing در لینوکس

خوشبختانه اکنون ما یک راه حل داریم. در زیر نشان خواهیم داد که چگونه API گرافیک دات نت ما، Aspose.Drawing for .NET، می تواند به شما در استفاده از System.Drawing در لینوکس کمک کند. با استفاده از Aspose.Drawing، می‌توانید از شر کتابخانه‌های گرافیکی با کد بومی خلاص شوید و تصاویر خود را در همه پلتفرم‌ها یکسان نشان دهید.

NET Graphics API - نصب آسان

برای نصب Aspose.Drawing روی یک ماشین لینوکس هدف، فقط باید .NET Core را نصب کنید. Aspose.Drawing.dll را در پوشه پروژه خود قرار دهید و برنامه را اجرا کنید. همین. اکنون می‌توانید از کلاس‌ها در فضای نام System.Drawing درست مانند برنامه‌های NET Framework خود در ویندوز استفاده کنید.

برای دریافت باینری های 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 می توانید هنگام اجرای کدهایی که با موفقیت در ویندوز اجرا شده اند، خطاهای غیرقابل پیش بینی را در لینوکس دریافت کنید:

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 استفاده می کنید، نتایج رندر شما ممکن است در ویندوز و لینوکس متفاوت به نظر برسد، به مثال زیر مراجعه کنید.

System.Drawing در لینوکس و ویندوز

با Aspose.Drawing می‌توانید برنامه‌های گرافیکی چند پلتفرمی برای ویندوز، لینوکس یا اندروید ایجاد کنید و همیشه نتایج رندر یکسانی را در هر پلتفرم دریافت خواهید کرد. این امر با ایجاد یک موتور رندر دو بعدی مستقل از پلت فرم به جای تکیه بر کتابخانه های گرافیکی شخص ثالث به دست آمد.

جدا از اصول اولیه گرافیکی، رندر فونت در همه پلتفرم ها یکسان است. و حتی اگر فونت های سیستم در لینوکس با ویندوز متفاوت است، می توانید از PrivateFontCollection برای بارگذاری مجموعه فونت های خود استفاده کنید. راه دیگر نصب بسته ای از فونت های مایکروسافت در سیستم لینوکس و فراخوانی عملکردهای رندر متن به طور معمول است.

Aspose.Drawing را به صورت رایگان امتحان کنید

Aspose.Drawing در NuGet موجود است. همچنین می توانید فایل های باینری یا نصب کننده MSI را دانلود کنید. می‌توانید از کتابخانه Aspose.Drawing با محدودیت‌ها استفاده کنید یا [مجوز آزمایشی رایگان] را درخواست کنید.

پس چرا امروز آن را امتحان نکنید؟

نتیجه

در این مقاله مشاهده کردید که چقدر راحت می توان از System.Drawing بر روی تمامی پلتفرم ها بدون وابستگی استفاده کرد و به همان نتیجه رسید. می توانید در [صفحه] رسمی 9 درباره Aspose.Drawing اطلاعات بیشتری کسب کنید. برای هر گونه سوال، لطفاً از [فروم 10 استفاده کنید و منتظر پست ها و راهنماهای بعدی باشید.

همچنین ببینید