Безкоштовна бібліотека C# .NET для завантаження, читання та малювання шрифтів
Бібліотека з відкритим кодом C# .NET для завантаження, читання та малювання різних типів шрифтів, таких як TrueType, CFF, Woff, Woff2 та багато інших.
Коли мова йде про програмну роботу зі шрифтами, розробникам програмного забезпечення часто потрібні надійні інструменти та бібліотеки для обробки різноманітних операцій, пов’язаних зі шрифтами. Однією з таких потужних бібліотек з відкритим кодом, яка здобула популярність серед розробників, є бібліотека SixLabors Fonts. Fonts — дуже корисна бібліотека з відкритим кодом для C# .NET, яка надає широкий набір функціональностей для роботи з різними типами шрифтів у C#‑додатках. Розроблена командою Six Labors, бібліотека Fonts має на меті спростити завдання з обробки шрифтів і полегшити розробникам програмну роботу з гарнітурами. Незалежно від того, чи потрібно користувачам завантажувати, рендерити, вимірювати чи маніпулювати шрифтами, бібліотека Fonts пропонує чистий і інтуїтивний API для всіх цих операцій.
Бібліотека шрифтів з відкритим вихідним кодом надає кілька функцій для маніпуляції шрифтами та їх налаштування, дозволяючи розробникам програм створювати унікальні та візуально привабливі текстові елементи у своїх застосунках. У бібліотеці є кілька важливих функцій, таких як завантаження шрифтів з різних джерел (шляхи, потоки або вбудовані ресурси), можливості високоякісного рендерингу гліфів, точне розташування та вирівнювання тексту, обробка Unicode‑тексту, організація шрифтів у колекції та багато іншого.
Бібліотека Fonts побудована на .NET Standard, що робить її сумісною з багатьма платформами та фреймворками, включаючи .NET Core, .NET Framework, Xamarin та Mono. Бібліотека пропонує простий та інтуїтивний API, що робить її доступною для розробників будь‑якого рівня. Незалежно від того, чи створюєте ви настільний застосунок, веб‑службу чи мобільний додаток, бібліотека Fonts забезпечує надійну основу для всіх ваших потреб у керуванні шрифтами. Спробуйте її і відкрийте світ креативних шрифтів у своїх застосунках за допомогою бібліотеки шрифтів з відкритим кодом.
Початок роботи зі шрифтами
Рекомендований спосіб встановлення Fonts — використання NuGet. Будь ласка, використайте наступну команду для плавної інсталяції.
Встановлення шрифтів через NuGet
PM > Install-Package SixLabors.Fonts –PreRelease
Ви також можете встановити його вручну; завантажте останні файли релізу безпосередньо з репозиторію GitHub.
Завантаження та читання деталей шрифту в додатках C#
Бібліотека Fonts з відкритим кодом дозволяє розробникам програмного забезпечення завантажувати різні типи шрифтів і відображати їх повну інформацію у C# застосунках. Бібліотека підтримує завантаження шрифтів з різних джерел, включаючи файлові шляхи, потоки, вбудовані ресурси тощо. Така гнучкість дозволяє розробникам безшовно інтегрувати завантаження шрифтів у свої застосунки. Бібліотека підтримує роботу з TrueType шрифтами, OpenType шрифтами з контурами CFF1, Woff, Woff2 та інші. Наступний приклад показує, як прочитати опис TTF шрифту за допомогою команд C#.
Як прочитати опис шрифту за допомогою C# API?
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#
Бібліотека з відкритим кодом Fonts дозволяє розробникам програмного забезпечення організовувати шрифти в колекції, спрощуючи керування та перемикання між різними сімействами та стилями шрифтів. За допомогою лише кількох рядків коду розробники можуть створювати власні колекції шрифтів. Бібліотека також забезпечує підтримку розширених функцій 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);
}