ttf-parser 0.5 - TrueType எழுத்துருக்களுடன் வேலை செய்வதற்கான புதிய நூலகம்

ttf-பாகுபடுத்தி TrueType/OpenType எழுத்துருக்களை பாகுபடுத்தும் நூலகம்.
புதிய பதிப்பு மாறி எழுத்துருக்களுக்கு முழு ஆதரவைக் கொண்டுள்ளது
(மாறி எழுத்துருக்கள்) மற்றும் C API, இதன் விளைவாக நான் அதை லோர்களில் விளம்பரப்படுத்த முடிவு செய்தேன்.

சமீப காலம் வரை, TrueType எழுத்துருக்களுடன் வேலை செய்ய வேண்டிய அவசியம் ஏற்பட்டால், சரியாக இரண்டு விருப்பங்கள் இருந்தன: FreeType மற்றும் stb_truetype. முதலாவது ஒரு பெரிய கலவையாகும், இரண்டாவது ஒரு சிறிய எண்ணிக்கையிலான செயல்பாடுகளை ஆதரிக்கிறது.

ttf-பார்சர் நடுவில் எங்கோ உள்ளது. இது ஒரே மாதிரியான TrueType அட்டவணைகளை (TrueType வடிவம் பல தனித்தனி பைனரி அட்டவணைகளைக் கொண்டுள்ளது) FreeType ஆக ஆதரிக்கிறது, ஆனால் கிளிஃப்களையே வரையவில்லை.

அதே நேரத்தில், ttf-பாகுபடுத்தி பல குறிப்பிடத்தக்க வேறுபாடுகளைக் கொண்டுள்ளது:

  1. ttf-parser பாதுகாப்பற்றதைப் பயன்படுத்தாமல் ரஸ்டில் எழுதப்பட்டுள்ளது. FreeType மற்றும் stb_truetype ஆகியவை C இல் எழுதப்பட்டுள்ளன.
  2. ttf-parser மட்டுமே நினைவக-பாதுகாப்பான செயலாக்கமாகும். சீரற்ற நினைவகத்தைப் படிப்பது சாத்தியமில்லை. FreeType இல் பாதிப்புகள் தொடர்ந்து சரி செய்யப்படுகின்றன, மேலும் stb_truetype கொள்கையளவில், தன்னிச்சையான எழுத்துருக்களைப் படிக்க வடிவமைக்கப்படவில்லை.
  3. ttf-parser மட்டுமே நூல்-பாதுகாப்பான செயலாக்கமாகும். அனைத்து பாகுபடுத்தும் முறைகளும் நிலையானவை. மாறக்கூடிய எழுத்துருக்களுக்கான ஆயங்களை அமைப்பது மட்டுமே விதிவிலக்கு, ஆனால் இந்த செயல்பாடு மீண்டும் உள்ளது. FreeType அடிப்படையில் ஒற்றை-திரிக்கப்பட்டதாகும். stb_truetype - மறுபதிப்பு (நீங்கள் வெவ்வேறு நூல்களில் தனிப்பட்ட நகல்களைப் பயன்படுத்தலாம், ஆனால் பலவற்றில் ஒன்று அல்ல).
  4. ttf-parser என்பது குவியல் ஒதுக்கீடுகளைப் பயன்படுத்தாத ஒரே செயலாக்கமாகும். இது பாகுபடுத்துவதை விரைவுபடுத்தவும், OOM இல் உள்ள சிக்கல்களைத் தவிர்க்கவும் உங்களை அனுமதிக்கிறது.
  5. மேலும், கிட்டத்தட்ட அனைத்து எண்கணித செயல்பாடுகளும் எண் வகைகளின் மாற்றங்களும் சரிபார்க்கப்படுகின்றன (நிலையானவை உட்பட).
  6. மிக மோசமான நிலையில், நூலகம் விதிவிலக்கு அளிக்கலாம். இந்த வழக்கில், C API இல், விதிவிலக்குகள் பிடிக்கப்படும் மற்றும் செயல்பாடு ஒரு பிழையை வழங்கும், ஆனால் செயலிழக்காது.

மேலும் அனைத்து பாதுகாப்பு உத்தரவாதங்கள் இருந்தபோதிலும், ttf-பாகுபடுத்தும் வேகமான செயல்படுத்தல் ஆகும். எடுத்துக்காட்டாக, CFF2 பாகுபடுத்துவது FreeType ஐ விட 3.5 மடங்கு வேகமானது. பகுத்தல் glyf, இதற்கிடையில், stb_truetype ஐ விட 10% மெதுவாக உள்ளது, ஆனால் இது மாறி எழுத்துருக்களை ஆதரிக்காததன் காரணமாகும், இதை செயல்படுத்த கூடுதல் சேமிப்பு தேவைப்படுகிறது. தகவல். மேலும் விவரங்கள் இல் என்னை தெரிந்து கொள்.

ஆதாரம்: linux.org.ru

கருத்தைச் சேர்