freetype как да обработвате (съставяте) дълги низове от сложни скриптове

Използвам freetype за изобразяване на единични знаци, мога да използвам някои допълнителни данни за създаване на дълги низове. Но за сложни скриптове на езици като хинди или тибетски се нуждаете от усъвършенствана логика, която ще свърже всички тези индекси, горни индекси, сложни съгласни и т.н. Как трябва да се работи с това? Има ли библиотека върху freetype или има функции вътре в freetype, които не мога да намеря?


person exebook    schedule 20.01.2014    source източник


Отговори (1)


Всъщност на SO е OT да иска/препоръчва библиотеки, но мисля, че единственият избор с отворен код е Pango:

Pango е библиотека за оформление и изобразяване на текст, с акцент върху интернационализацията.

[...]

Pango включва PangoLayout, драйвер от високо ниво за оформяне на цели блокове от текст и рутинни процедури за подпомагане на редактирането на интернационализиран текст.

Вижте Галерия със скриптове за селекция от европейски и други скриптове, които може да обработва – аз не вижте хинди (деванагари) или тибетски, но изглежда много вероятно да няма проблеми с нито едно от двете.

Pango вътрешно използва Harfbuzz за обработка на сложен текст. Можете да опитате и двете и да видите колко работа е необходима, за да получите това, от което се нуждаете, като използвате само Harfbuzz, или отидете направо в Pango и вземете пакета ол инклузив. (Чудя се къде да начертая разделителна линия във функционалността.)

FYI: част от усъвършенстваната логика, която липсва на FreeType, може да се припише на обработката на позиционирането на OpenType и заместването на глифове. Разработчиците на FreeType изглежда са се съсредоточили предимно върху чертане на глифове (вижте http://freetype.org/opentype/index.html), възлагайки логистиката на Harfbuzz.

person Jongware    schedule 20.01.2014