Python библиотека за четене на шрифтове
Отворен Python API, който дава възможност на софтуерни разработчици и дизайнери лесно да манипулират, редактират и анализират шрифтове.
FontTools играе съществена роля в дизайна, брандинга и комуникацията, а шрифтовете са градивните елементи на визуалната естетика. В дигиталната ера управлението и манипулирането на шрифтове стават все по-важни. Един мощен инструмент, който придоби популярност сред разработчиците и дизайнерите, е библиотеката FontTools. FontTools е гъвкава отворена Python библиотека, която предоставя пълен набор от инструменти за работа с шрифтове и се е превърнала в мощен инструмент за ентусиасти на шрифтове, дизайнери, разработчици и типографи. Обширният набор от функции, съчетан с Python‑базирания интерфейс, я прави отличен избор за задачи и проекти, свързани с шрифтове.
FontTools е библиотека с отворен код, която позволява на софтуерните разработчици да взаимодействат с файлове с шрифтове програмно. Тя предлага широк набор от функции за манипулиране, редактиране и анализ на шрифтове. Поддържа функции като манипулиране на шрифтове по различни начини, базови операции по редактиране на глифове, подобрено сливане на шрифтове, премахване на единични глифове, поддръжка на SFNT таблици, идентифициране и прилагане на различни SFNT стойности, модифициране на контурите на глифовете, коригиране на метриките на шрифта, промяна на кодирането на шрифта, добавяне или премахване на таблици, конвертиране на дефиниции за оформление между различни системи за оформление, намиране и редактиране на низове за имена и др.
Библиотеката FontTools дава възможност на софтуерните програмисти програмен достъп, редактиране и анализиране на различни аспекти на файловете с шрифтове. Тя поддържа няколко формата на шрифтове, включително TrueType (TTF), OpenType (OTF), AFM, до известна степен Type 1 и някои специфични за Mac формати, което я прави универсален избор за работа с различни типове шрифтове. FontTools се възползва от живо и подкрепящо се общество. Проектът е с отворен код и се поддържа активно, с редовни актуализации и поправки на грешки. Независимо дали автоматизирате манипулирането на шрифтове, фино настройвате типографиите или провеждате детайлен анализ на шрифтове, FontTools предоставя необходимите инструменти и гъвкавост за ефективно постигане на вашите цели.
Започнете с FontTools
FontTools изисква Python 3.8 или по-нов. Препоръчителният начин за инсталиране на FontTools е чрез PyPI. Моля, използвайте следната команда за гладка инсталация.
Инсталиране на FontTools чрез NuGet
pip install fonttools Можете също да го инсталирате ръчно; изтеглете последните файлове на изданието директно от GitHub хранилището.
Редактиране и манипулиране на шрифтове чрез Python API
Отворената библиотека FontTools е много лесна за използване и включва няколко важни функции, които дават възможност на софтуерните разработчици да манипулират шрифтове по различни начини в техните Python приложения. Тя им позволява да извличат информация от файлове с шрифтове, да модифицират контурите на глифовете, да манипулират метриките и дори да създават нови шрифтове от нулата, да автоматизират повтарящи се задачи, свързани със шрифтове, и др. С използването на библиотеката FontTools софтуерните разработчици могат също да модифицират контурите на глифовете, да коригират метриките, да променят кодирането и да добавят или премахват таблици. Тази гъвкавост позволява на дизайнерите да фино настройват шрифтовете според конкретни изисквания или да създават персонализирани версии за своите проекти.
Как да модифицираме контурните пътища чрез Python API?
path_orig = get_outline(font, "a")
startdraw(200,200)
paths = []
for i in path_orig:
if i[0] == 'moveTo':
path = draw.BezierPath()
path.moveTo((i[1][0]))
if i[0] == 'lineTo':
path.lineTo((i[1][0]))
if i[0] == 'qCurveTo':
path.qCurveTo(*(i[1]))
if i[0] == 'closePath':
path.closePath()
paths.append(path)
finalpath = paths[0].difference(paths[1])
finalpath.scale(0.3) #let's scale it down!
draw.fill(0.5)
draw.stroke(0)
draw.drawPath(finalpath)
show()
Манипулиране на глифове чрез Python API
Отвореният софтуерен библиотек FontTools улеснява софтуерните разработчици да манипулират индивидуални глифове програмно. Той предоставя методи за достъп и модифициране на контурите на глифовете, метриките и атрибутите, като дава на потребителите гъвкавост за персонализиране на шрифтовете според техните специфични нужди. Независимо дали става въпрос за настройване на кернинг двойки, промяна на формите на глифовете, добавяне на лигатури или сравняване на контурите на глифовете, FontTools опростява процеса на манипулиране на глифове. Следният пример показва как да сравните контурите на два глифа и да покажете резултатите, използвайки Python код.
Как да сравним контурите на два глифа, използвайки Python API?
from fontTools.ttLib import TTFont
from fontTools.pens.recordingPen import RecordingPen
font = TTFont(filename)
cmap = font.getBestCmap()
gs = font.getGlyphSet()
g1 = gs[cmap[ord("A")]]
g2 = gs[cmap[ord("B")]]
p1 = RecordingPen()
p2 = RecordingPen()
g1.draw(p1)
g2.draw(p2)
print(p1.value == p2.value)
Генериране и конвертиране на шрифтове чрез Python API
Отвореният софтуерен библиотек FontTools предлага функции за генериране на нови файлове с шрифтове или конвертиране на съществуващи в различни формати. Тази функция е особено полезна за дизайнери и разработчици, които трябва да създават персонализирани шрифтове или да адаптират шрифтове за конкретни платформи. С FontTools потребителите могат да генерират инстанции на шрифтове с различни тегла, стилове и вариации, или безпроблемно да конвертират шрифтове между формати TrueType и OpenType. Следният пример показва как да се конвертира формат CFF към формат CFF2, използвайки Python команди.