HarfBuzz on avoimen lähdekoodin vapaa ohjelmistokehityskirjasto, jota käytetään tekstien muotoiluun (text-shaping engine).

HarfBuzz ottaa syötteenään merkkijonon, joka koostuu Unicode-koodatuista merkeistä, ja valitsee ja sijoittaa halutusta fontista glyyfit, joilla teksti tulostetaan soveltaen tekstin asettelusääntöjä ja fontin ominaisuuksia. HarfBuzz voi muotoilla tekstin merkittävimmillä maailman kirjoitusjärjestelmillä.https://harfbuzz.github.io/what-is-harfbuzz.html

HarfBuzzin tukemia tekstien muotoilumalleja ovat:https://harfbuzz.github.io/what-does-harfbuzz-do.html intialainen (devanagari, bengali, gujarati, gurmukhi, kannada, malayalam, oriya, tamili ja telugu) arabialainen, mukaan lukien N'Ko, syyria, sekä myös mongoli. Esimerkiksi arabialaisella kirjaimella on neljä eri muotoa riippuen siitä, esiintyykö merkki sanan alussa, keskellä, lopussa tai itsenäisenä merkkinä. Täten kirjain esitettävä eri glyyfillä riippuen tästä. thailainen, mukaan lukien lao khmeriläinen kirjaimisto burmalainen kirjaimisto tiibetiläinen kirjaimisto hangul heprealainen kirjaimisto yleinen muotoilumalli USE vakiomalli ei-kompleksisille kirjoitusjärjestelmille kuten latinalainen, kyrillinen, kreikkalainen, armenilainen, georgialainen, tifinagh ja muut. Näissä käytetään lähinnä ligatuureja (esim. f + f + i = ffi) ja painomerkkejä.https://harfbuzz.github.io/why-do-i-need-a-shaping-engine.html emojit. Emojeihin on lisätty järjestelmä, jolla emojin hahmon ihonväriä voi muuttaa. Lisäksi monet lippu-emojit ja uudet emojit muodostetaan yhdistämällä vanhoja ns. ZWJ-merkin (zero-width joiner) avulla (esim. 🐈 + ZWJ + ⬛ = musta kissa).

HarfBuzzin kehitti alun perin Behdad Esfahbod osana FreeType-projektia. Erillisiä versioita ylläpidettiin Qt- ja Pango-kirjastoja (mm. GTK:n ja Firefoxin käyttämä) varten, nämä versiot yhdistettiin myöhemmin. Esfahbod palkittiin vuonna 2013 O'Reilly Open Source Award -palkinnolla kirjaston kehittämisestä.https://web.archive.org/web/20150618102153/http://www.oscon.com/oscon2013/public/schedule/detail/29956

KDE:n (QT) ja GNOME (GTK) lisäksi kirjasto kuuluu mm. ChromeOSiin (Skia), PlayStation 4:aan, Androidiin, Javaan ja Flutteriin. Sitä käyttävät suoraan Chromium/Chrome, Firefox, LibreOffice, Scribus, Inkscape ja Adobe Photoshop (versiosta 23.0 v. 2021 lähtienhttps://helpx.adobe.com/mena_en/photoshop/using/unified-text-engine.html ).

Lähteet

Luokka:Typografia Luokka:Ohjelmakirjastot