Бесплатная библиотека 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#.
Как прочитать описание шрифта с помощью 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#
Открытая библиотека 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);
}