مكتبة مجانية C# .NET لتحميل وقراءة ورسم الخطوط
مكتبة مفتوحة المصدر C# .NET لتحميل وقراءة ورسم أنواع مختلفة من الخطوط مثل TrueType و CFF و Woff و Woff2 والعديد غيرها.
عندما يتعلق الأمر بالعمل مع الخطوط برمجيًا، غالبًا ما يحتاج مطورو البرمجيات إلى أدوات ومكتبات قوية للتعامل مع مختلف عمليات الخطوط. إحدى هذه المكتبات المفتوحة المصدر القوية التي حظيت بشعبية بين المطورين هي مكتبة SixLabors Fonts. Fonts هي مكتبة مفتوحة المصدر مفيدة جدًا بلغة C# .NET توفر مجموعة شاملة من الوظائف للعمل مع أنواع مختلفة من الخطوط داخل تطبيقات C#. تم تطوير مكتبة Fonts بواسطة فريق Six Labors، وتهدف إلى تبسيط مهام التعامل مع الخطوط وجعلها أسهل للمطورين للعمل مع الأنماط البرمجية للخطوط برمجيًا. سواء كان المستخدمون بحاجة إلى تحميل أو عرض أو قياس أو تعديل الخطوط، تقدم مكتبة Fonts واجهة برمجة تطبيقات نظيفة وبديهية لجميع هذه العمليات.
توفر مكتبة الخطوط المفتوحة المصدر عدة ميزات لمعالجة الخطوط وتخصيصها، مما يمكّن مطوري البرمجيات من إنشاء عناصر نصية فريدة وجذابة بصريًا داخل تطبيقاتهم. هناك عدة ميزات مهمة في المكتبة، مثل تحميل الخطوط من مصادر مختلفة (مسارات، تدفقات، أو موارد مدمجة)، قدرات عالية الجودة في عرض الحروف، تنفيذ تخطيط نص دقيق ومحاذاة، معالجة النص Unicode، تنظيم الخطوط في مجموعات والعديد غير ذلك.
تم بناء مكتبة الخطوط على .NET Standard، مما يجعلها متوافقة مع منصات وإطارات عمل متعددة، بما في ذلك .NET Core، .NET Framework، Xamarin، وMono. تقدم المكتبة واجهة برمجة تطبيقات بسيطة وبديهية، مما يجعلها متاحة للمطورين من جميع مستويات الخبرة. سواء كنت تبني تطبيقًا سطح مكتب، خدمة ويب، أو تطبيقًا محمولًا، توفر مكتبة الخطوط أساسًا صلبًا لجميع احتياجات إدارة الخطوط الخاصة بك. لذا، جربها واكتشف عالم الخطوط الإبداعية في تطبيقاتك مع مكتبة الخطوط المفتوحة المصدر.
البدء في استخدام الخطوط
الطريقة الموصى بها لتثبيت Fonts هي باستخدام NuGet. يرجى استخدام الأمر التالي لتثبيت سلس.
تثبيت الخطوط عبر NuGet
PM > Install-Package SixLabors.Fonts –PreRelease
يمكنك أيضًا تثبيتها يدويًا؛ قم بتنزيل أحدث ملفات الإصدار مباشرةً من مستودع GitHub.
تحميل وقراءة تفاصيل الخط داخل تطبيقات C#
تتيح مكتبة Fonts مفتوحة المصدر للمطورين تحميل أنواع مختلفة من الخطوط وعرض تفاصيلها الكاملة داخل تطبيقات C#. تدعم المكتبة تحميل الخطوط من مصادر متعددة، بما في ذلك مسارات الملفات، وتدفقات البيانات، والموارد المدمجة، وأكثر من ذلك. تسمح هذه المرونة للمطورين بدمج تحميل الخطوط بسلاسة في تطبيقاتهم. تدعم المكتبة العمل مع خطوط TrueType، وخطوط OpenType ذات المخططات CFF1، وWoff، وWoff2، وغيرها. يوضح المثال التالي كيفية قراءة الوصف الخاص بخط TTF باستخدام أوامر C#.
كيفية قراءة وصف الخط باستخدام API C#؟
FontDescription description = null;
using(var fs = File.OpenRead("Font.ttf")){
description = FontDescription.Load(fs); // once it has loaded the data the stream is no longer required and can be disposed of
}
string name = description.FontName(CultureInfo.InvariantCulture);
دعم مجموعات الخطوط عبر C#
مكتبة الخطوط مفتوحة المصدر تسمح لمطوري البرمجيات بتنظيم الخطوط في مجموعات، مما يجعل من السهل إدارة وتبديل بين عائلات وأنماط الخطوط المختلفة. باستخدام بضع أسطر من الشيفرة فقط يمكن للمطورين إنشاء مجموعات خطوط مخصصة. كما توفر المكتبة دعمًا لميزات OpenType المتقدمة مثل استبدال الحروف (GSUB) وتحديد موضع الحروف (GPOS). يوضح المثال التالي كيف يمكن للمطورين العمل مع مجموعات الخطوط داخل تطبيقات C#.
كيفية العمل مع مجموعة sFont عبر كود C#؟
using SixLabors.Fonts;
FontCollection collection = new();
collection.Add("path/to/font.ttf");
collection.Add("path/to/font2.ttf");
collection.Add("path/to/emojiFont.ttf");
collection.AddCollection("path/to/font.ttc");
if(collection.TryFind("Font Name", out FontFamily family))
if(collection.TryFind("Emoji Font Name", out FontFamily emojiFamily))
{
// family will not be null here
Font font = family.CreateFont(12, FontStyle.Italic);
// TextOptions provides comprehensive customization options support
TextOptions options = new(font)
{
// Will be used if a particular code point doesn't exist in the font passed into the constructor. (e.g. emoji)
FallbackFontFamilies = new [] { emojiFamily }
};
FontRectangle rect = TextMeasurer.Measure("Text to measure", options);
}