Безплатна C# .NET библиотека за зареждане, четене и рисуване на шрифтове
Open Source C# .NET библиотека за зареждане, четене и рисуване на различни типове шрифтове като TrueType, CFF, Woff, Woff2 и много други.
Когато става въпрос за работа с шрифтове програмно, софтуерните разработчици често се нуждаят от надеждни инструменти и библиотеки за обработка на различни операции, свързани с шрифтовете. Една такава мощна отворена библиотека, която е спечелила популярност сред разработчиците, е библиотеката SixLabors Fonts. Fonts е много полезна отворена C# .NET библиотека, която предоставя пълен набор от функционалности за работа с различни типове шрифтове в C# приложения. Разработена от екипа на Six Labors, библиотеката Fonts цели да опрости задачите по работа с шрифтове и да улесни разработчиците при програмен достъп до типографски семейства. Независимо дали потребителите трябва да зареждат, рендерират, измерват или манипулират шрифтове, библиотеката Fonts предлага чист и интуитивен API за всички тези операции.
Отворената библиотека Fonts предоставя множество функции за манипулиране и персонализиране на шрифтове, позволявайки на софтуерните разработчици да създават уникални и визуално привлекателни текстови елементи в своите приложения. Има няколко важни функции, част от библиотеката, като зареждане на шрифтове от различни източници (пътища, потоци или вградени ресурси), възможности за висококачествено рендериране на глифове, извършване на прецизно оформление и подравняване на текста, работа с Unicode текст, организиране на шрифтове в колекции и много други.
Библиотеката Fonts е изградена върху .NET Standard, което я прави съвместима с множество платформи и рамки, включително .NET Core, .NET Framework, Xamarin и Mono. Библиотеката предлага прост и интуитивен API, което я прави достъпна за разработчици от всички нива на умения. Независимо дали създавате настолно приложение, уеб услуга или мобилно приложение, библиотеката Fonts предоставя стабилна основа за всички ваши нужди от управление на шрифтове. Затова я изпробвайте и отключете света на креативните шрифтове във вашите приложения с отворената библиотека 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);
}