ttf-parser 0.5 - китобхонаи нав барои кор бо шрифтҳои TrueType

ttf-таҳлилкунанда китобхона барои таҳлили шрифтҳои TrueType/OpenType аст.
Версияи нав дорои дастгирии пурраи шрифтҳои тағирёбанда мебошад
(шрифтҳои тағйирёбанда) ва C API, ки дар натиҷа ман қарор додам, ки онро дар рисола таблиғ кунам.

То ба наздикӣ, агар зарурати кор бо шрифтҳои TrueType вуҷуд дошта бошад, маҳз ду вариант вуҷуд дошт: FreeType ва stb_truetype. Якум комбайни бузург аст, дуюмаш шумораи хеле ками вазифаҳоро дастгирӣ мекунад.

ttf-parser дар ҷое дар мобайн аст. Он ҳамаи ҳамон ҷадвалҳои TrueType-ро (формати TrueType аз бисёр ҷадвалҳои дуии алоҳида иборат аст) ҳамчун FreeType дастгирӣ мекунад, аммо худи глифҳоро намекашад.

Ҳамзамон, ttf-parser дорои бисёр фарқиятҳои назарраси дигар аст:

  1. ttf-parser дар Rust бидуни истифодаи хатарнок навишта шудааст. FreeType ва stb_truetype дар C навишта шудаанд.
  2. ttf-parser ягона татбиқи хотираи бехатар аст. Хондани хотираи тасодуфӣ имконнопазир аст. Дар FreeType осебпазириҳо пайваста ислоҳ карда мешаванд ва stb_truetype аслан барои хондани шрифтҳои худсарона пешбинӣ нашудааст.
  3. ttf-parser ягона татбиқи риштаи бехатар аст. Ҳамаи усулҳои таҳлил доимӣ мебошанд. Ягона истисно муқаррар кардани координатҳо барои шрифтҳои тағирёбанда аст, аммо ин функсия дубора ворид мешавад. FreeType асосан як ришта аст. stb_truetype - reentrant (шумо метавонед нусхаҳои инфиродӣ дар риштаҳои гуногун истифода баред, вале на яке аз бисёр).
  4. ttf-parser ягона татбиқест, ки тақсимоти теппаро истифода намебарад. Ин ба шумо имкон медиҳад, ки таҳлилро суръат бахшед ва мушкилотро бо OOM пешгирӣ кунед.
  5. Инчунин, қариб ҳама амалҳои арифметикӣ ва табдили намудҳои ададӣ тафтиш карда мешаванд (аз ҷумла статикӣ).
  6. Дар бадтарин ҳолат, китобхона метавонад истисно гузорад. Дар ин ҳолат, дар C API, истисноҳо дастгир карда мешаванд ва функсия хатогиро бармегардонад, аммо суқут намекунад.

Ва сарфи назар аз ҳама кафолатҳои амниятӣ, ttf-parser инчунин татбиқи зудтарин аст. Масалан, таҳлили CFF2 нисбат ба FreeType 3.5 маротиба тезтар аст. Дар айни замон, таҳлили glyf нисбат ба stb_truetype 10% сусттар аст, аммо ин аз он сабаб аст, ки он шрифтҳои тағирёбандаро дастгирӣ намекунад, ки татбиқи онҳо нигоҳдории иловагиро талаб мекунад. маълумот. Тафсилоти бештар дар README.

Манбаъ: linux.org.ru

Илова Эзоҳ