Python-bibliotheek voor het lezen van lettertypen
Open source Python API die softwareontwikkelaars en ontwerpers in staat stelt lettertypen gemakkelijk te manipuleren, bewerken en analyseren.
FontTools speelt een cruciale rol in design, branding en communicatie, en lettertypen zijn de bouwstenen van visuele esthetiek. In het digitale tijdperk zijn fontbeheer en -manipulatie steeds belangrijker geworden. Een krachtig hulpmiddel dat aan populariteit heeft gewonnen bij ontwikkelaars en ontwerpers is de FontTools-bibliotheek. FontTools is een veelzijdige open‑source Python‑bibliotheek die een uitgebreide set tools biedt voor het werken met lettertypen en is uitgegroeid tot een krachtig instrument voor fontliefhebbers, ontwerpers, ontwikkelaars en typografen. De uitgebreide functionaliteit, gecombineerd met de op Python gebaseerde interface, maakt het een uitstekende keuze voor fontgerelateerde taken en projecten.
FontTools is een open-source bibliotheek die softwareontwikkelaars in staat stelt om programmeerbaar met fontbestanden te werken. Het biedt een breed scala aan functionaliteit voor fontmanipulatie, bewerking en analyse. Het ondersteunt functies zoals het manipuleren van fonts op verschillende manieren, basisbewerkingen van glyphs, verbeterde samenvoeging van fonts, het verwijderen van afzonderlijke glyphs, SFNT-tabelondersteuning, het identificeren en implementeren van verschillende SFNT-waarden, het wijzigen van glyphcontouren, het aanpassen van fontmetriek, het wijzigen van fontcodering, het toevoegen of verwijderen van tabellen, het converteren van lay-outdefinities tussen verschillende lay-outsystemen, het vinden en bewerken van naamstrings, enzovoort.
De FontTools-bibliotheek stelt softwareprogrammeurs in staat om programmatisch toegang te krijgen tot, te bewerken en te analyseren verschillende aspecten van lettertypebestanden. Het ondersteunt verschillende lettertypeformaten, waaronder TrueType (TTF), OpenType (OTF), AFM, in zekere mate Type 1, en enkele Mac‑specifieke formaten, waardoor het een veelzijdige keuze is voor het werken met verschillende lettertype‑soorten. FontTools profiteert van een levendige en ondersteunende gemeenschap. Het project is open source en wordt actief onderhouden, met regelmatige updates en bugfixes. Of je nu lettertype‑manipulatie automatiseert, lettertypen fijn afstemt of gedetailleerde lettertype‑analyse uitvoert, FontTools biedt de benodigde tools en flexibiliteit om je doelen efficiënt te bereiken.
Aan de slag met FontTools
FontTools vereist Python 3.8 of hoger. De aanbevolen manier om FontTools te installeren is via PyPI. Gebruik alstublieft de volgende opdracht voor een soepele installatie.
Installeer FontTools via NuGet
pip install fonttools Je kunt het ook handmatig installeren; download de nieuwste release‑bestanden rechtstreeks van de GitHub-repository.
Lettertype bewerken & manipuleren via Python API
De open FontTools-bibliotheek is zeer eenvoudig te gebruiken en bevat verschillende belangrijke functies die softwareontwikkelaars in staat stellen lettertypen op verschillende manieren te manipuleren binnen hun Python-toepassingen. Het stelt hen in staat informatie uit lettertypebestanden te extraheren, glyph-contouren te wijzigen, metriek te manipuleren en zelfs nieuwe lettertypen vanaf nul te creëren, repetitieve fontgerelateerde taken te automatiseren, enzovoort. Met de FontTools-bibliotheek kunnen softwareontwikkelaars ook glyph-contouren aanpassen, metriek bijstellen, codering wijzigen en tabellen toevoegen of verwijderen. Deze flexibiliteit stelt ontwerpers in staat lettertypen fijn af te stemmen op specifieke eisen of aangepaste versies voor hun projecten te maken.
Hoe outline-paden te wijzigen via de 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()
Glyph-manipulatie via Python API
De open source FontTools-bibliotheek maakt het voor softwareontwikkelaars eenvoudig om individuele glyphs programmatisch te manipuleren. Het biedt methoden om glyphcontouren, metriek en attributen te benaderen en te wijzigen, waardoor gebruikers de flexibiliteit hebben om lettertypen aan te passen aan hun specifieke behoeften. Of het nu gaat om het aanpassen van kerningparen, het wijzigen van glyphvormen, het toevoegen van ligaturen, of het vergelijken van glyphcontouren, FontTools vereenvoudigt het proces van glyphmanipulatie. Het volgende voorbeeld toont hoe je de contouren van twee glyphs kunt vergelijken en de resultaten kunt weergeven met Python-code.
Hoe de outlines van twee glyphs te vergelijken met de 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)
Lettertypegeneratie en -conversie via Python API
De open source FontTools-bibliotheek biedt functionaliteiten om nieuwe lettertypebestanden te genereren of bestaande te converteren naar verschillende formaten. Deze functie is bijzonder nuttig voor ontwerpers en ontwikkelaars die aangepaste lettertypen moeten maken of lettertypen moeten aanpassen voor specifieke platforms. Met FontTools kunnen gebruikers font‑instanties genereren met verschillende gewichten, stijlen en variaties, of lettertypen naadloos converteren tussen TrueType- en OpenType-formaten. Het volgende voorbeeld laat zien hoe je CFF-formaat naar CFF2-formaat kunt converteren met Python‑opdrachten.