1. Tuotteet
  2.   Font
  3.   Python
  4.   FontTools
 
  

Python-kirjasto fonttien lukemiseen

Avoimen lähdekoodin Python-API, joka antaa ohjelmistokehittäjille ja suunnittelijoille mahdollisuuden käsitellä, muokata ja analysoida fontteja vaivattomasti.

FontToolsilla on keskeinen rooli suunnittelussa, brändäyksessä ja viestinnässä, ja fontit ovat visuaalisen estetiikan rakennuspalikoita. Digitaalisella aikakaudella fonttien hallinta ja käsittely ovat tulleet yhä tärkeämmiksi. Yksi voimakas työkalu, joka on saanut suosiota kehittäjien ja suunnittelijoiden keskuudessa, on FontTools‑kirjasto. FontTools on monipuolinen avoimen lähdekoodin Python‑kirjasto, joka tarjoaa kattavan työkalupaketin fonttien kanssa työskentelemiseen, ja se on noussut voimakkaaksi työkaluksi fonttien harrastajille, suunnittelijoille, kehittäjille ja typografeille. Laaja ominaisuusvalikoima, yhdistettynä sen Python‑pohjaiseen käyttöliittymään, tekee siitä erinomaisen valinnan fontteihin liittyviin tehtäviin ja projekteihin.

FontTools on avoimen lähdekoodin kirjasto, joka mahdollistaa ohjelmistokehittäjien vuorovaikutuksen fonttitiedostojen kanssa ohjelmallisesti. Se tarjoaa laajan valikoiman toimintoja fonttien muokkaamiseen, editointiin ja analysointiin. Se tukee ominaisuuksia, kuten fonttien manipulointia eri tavoin, perusglyphien muokkausoperaatioita, parannettua fonttien yhdistämistä, yksittäisten glyphien poistamista, SFNT-taulun tukea, erilaisten SFNT-arvojen tunnistamista ja toteuttamista, glyphien ääriviivojen muokkaamista, fonttimetrien säätämistä, fonttikoodauksen muuttamista, taulujen lisäämistä tai poistamista, asettelumäärittelyjen muuntamista eri asettelujärjestelmien välillä, nimeämismerkkijonojen löytämistä ja muokkaamista, jne.

FontTools-kirjasto antaa ohjelmistokehittäjille mahdollisuuden ohjelmallisesti käyttää, muokata ja analysoida erilaisia fonttitiedostojen osa-alueita. Se tukee useita fonttiformaatteja, mukaan lukien TrueType (TTF), OpenType (OTF), AFM, osittain Type 1, ja joitakin Maciin spesifisiä formaatteja, mikä tekee siitä monipuolisen valinnan erilaisten fonttityyppien kanssa työskentelyyn. FontTools hyötyy elävästä ja tukevasta yhteisöstä. Projekti on avoimen lähdekoodin ja aktiivisesti ylläpidetty, säännöllisin päivityksin ja virhekorjauksin. Olitpa automatisoimassa fonttien käsittelyä, hienosäätämässä kirjasimia tai tekemässä yksityiskohtaista fonttianalyysiä, FontTools tarjoaa tarvittavat työkalut ja joustavuuden tavoitteidesi tehokkaaseen saavuttamiseen.

Previous Next

Aloittaminen FontToolsin kanssa

FontTools vaatii Pythonin 3.8:n tai uudemman. Suositeltu tapa asentaa FontTools on käyttää PyPI:tä. Käytäthän seuraavaa komentoa sujuvaan asennukseen.

Asenna FontTools NuGetin kautta

 pip install fonttools 

Voit myös asentaa sen manuaalisesti; lataa uusimmat julkaisutiedostot suoraan GitHub-varastosta.

Fonttien muokkaus ja käsittely Python API:n kautta

Avoin FontTools-kirjasto on erittäin helppokäyttöinen ja siihen on sisällytetty useita tärkeitä ominaisuuksia, jotka antavat ohjelmistokehittäjille mahdollisuuden manipuloida fontteja monin tavoin Python-sovelluksissaan. Se mahdollistaa tietojen poimimisen fonttitiedostoista, glyyffien ääriviivojen muokkaamisen, mittareiden säätämisen ja jopa uusien fonttien luomisen alusta alkaen, toistuvien fontteihin liittyvien tehtävien automatisoinnin jne. FontTools-kirjastoa käyttäen ohjelmistokehittäjät voivat myös muokata glyyffien kontuureja, säätää mittareita, vaihtaa koodausta ja lisätä tai poistaa tauluja. Tämä joustavuus antaa suunnittelijoille mahdollisuuden hienosäätää fontteja erityisvaatimusten mukaan tai luoda räätälöityjä versioita projekteihinsa.

Kuinka muokata ääriviivojen polkuja Python API:n avulla?

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()

Glyphien käsittely Python API:n kautta

Avoimen lähdekoodin FontTools-kirjasto tekee ohjelmistokehittäjille helppoa manipuloida yksittäisiä glyfejä ohjelmallisesti. Se tarjoaa menetelmiä glyfien ääriviivojen, mittasuhteiden ja attribuuttien hakemiseen ja muokkaamiseen, antaen käyttäjille joustavuutta mukauttaa fontteja heidän erityistarpeidensa mukaan. Olipa kyse kerning-parien säätämisestä, glyfien muotojen muuttamisesta, ligatuurien lisäämisestä tai glyfien ääriviivojen vertailusta, FontTools yksinkertaistaa glyfien manipuloinnin prosessia. Seuraava esimerkki näyttää, miten kahden glyfin ääriviivat vertaillaan ja tulokset näytetään Python-koodilla.

Kuinka vertailla kahden glyphin ääriviivoja Python API:n avulla?

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)

Fonttien luominen ja muuntaminen Python API:n kautta

Avoimen lähdekoodin FontTools‑kirjasto tarjoaa toimintoja uusien fonttitiedostojen luomiseen tai olemassa olevien muuntamiseen eri formaatteihin. Tämä ominaisuus on erityisen hyödyllinen suunnittelijoille ja kehittäjille, jotka tarvitsevat räätälöityjä fontteja tai haluavat mukauttaa fontteja tiettyihin alustoihin. FontToolsin avulla käyttäjät voivat luoda fonttiversioita eri painoilla, tyyleillä ja variaatioilla tai muuntaa fontteja saumattomasti TrueType‑ ja OpenType‑formaatteja välillä. Seuraava esimerkki näyttää, miten CFF‑muoto muunnetaan CFF2‑muotoon Python‑komentoja käyttäen.

 Suomen