ttf-பாகுபடுத்தி TrueType/OpenType எழுத்துருக்களை பாகுபடுத்தும் நூலகம்.
புதிய பதிப்பு மாறி எழுத்துருக்களுக்கு முழு ஆதரவைக் கொண்டுள்ளது
(மாறி எழுத்துருக்கள்) மற்றும் C API, இதன் விளைவாக நான் அதை லோர்களில் விளம்பரப்படுத்த முடிவு செய்தேன்.
சமீப காலம் வரை, TrueType எழுத்துருக்களுடன் வேலை செய்ய வேண்டிய அவசியம் ஏற்பட்டால், சரியாக இரண்டு விருப்பங்கள் இருந்தன: FreeType மற்றும் stb_truetype. முதலாவது ஒரு பெரிய கலவையாகும், இரண்டாவது ஒரு சிறிய எண்ணிக்கையிலான செயல்பாடுகளை ஆதரிக்கிறது.
ttf-பார்சர் நடுவில் எங்கோ உள்ளது. இது ஒரே மாதிரியான TrueType அட்டவணைகளை (TrueType வடிவம் பல தனித்தனி பைனரி அட்டவணைகளைக் கொண்டுள்ளது) FreeType ஆக ஆதரிக்கிறது, ஆனால் கிளிஃப்களையே வரையவில்லை.
அதே நேரத்தில், ttf-பாகுபடுத்தி பல குறிப்பிடத்தக்க வேறுபாடுகளைக் கொண்டுள்ளது:
- ttf-parser பாதுகாப்பற்றதைப் பயன்படுத்தாமல் ரஸ்டில் எழுதப்பட்டுள்ளது. FreeType மற்றும் stb_truetype ஆகியவை C இல் எழுதப்பட்டுள்ளன.
- ttf-parser மட்டுமே நினைவக-பாதுகாப்பான செயலாக்கமாகும். சீரற்ற நினைவகத்தைப் படிப்பது சாத்தியமில்லை. FreeType இல் பாதிப்புகள் தொடர்ந்து சரி செய்யப்படுகின்றன, மேலும் stb_truetype கொள்கையளவில், தன்னிச்சையான எழுத்துருக்களைப் படிக்க வடிவமைக்கப்படவில்லை.
- ttf-parser மட்டுமே நூல்-பாதுகாப்பான செயலாக்கமாகும். அனைத்து பாகுபடுத்தும் முறைகளும் நிலையானவை. மாறக்கூடிய எழுத்துருக்களுக்கான ஆயங்களை அமைப்பது மட்டுமே விதிவிலக்கு, ஆனால் இந்த செயல்பாடு மீண்டும் உள்ளது. FreeType அடிப்படையில் ஒற்றை-திரிக்கப்பட்டதாகும். stb_truetype - மறுபதிப்பு (நீங்கள் வெவ்வேறு நூல்களில் தனிப்பட்ட நகல்களைப் பயன்படுத்தலாம், ஆனால் பலவற்றில் ஒன்று அல்ல).
- ttf-parser என்பது குவியல் ஒதுக்கீடுகளைப் பயன்படுத்தாத ஒரே செயலாக்கமாகும். இது பாகுபடுத்துவதை விரைவுபடுத்தவும், OOM இல் உள்ள சிக்கல்களைத் தவிர்க்கவும் உங்களை அனுமதிக்கிறது.
- மேலும், கிட்டத்தட்ட அனைத்து எண்கணித செயல்பாடுகளும் எண் வகைகளின் மாற்றங்களும் சரிபார்க்கப்படுகின்றன (நிலையானவை உட்பட).
- மிக மோசமான நிலையில், நூலகம் விதிவிலக்கு அளிக்கலாம். இந்த வழக்கில், C API இல், விதிவிலக்குகள் பிடிக்கப்படும் மற்றும் செயல்பாடு ஒரு பிழையை வழங்கும், ஆனால் செயலிழக்காது.
மேலும் அனைத்து பாதுகாப்பு உத்தரவாதங்கள் இருந்தபோதிலும், ttf-பாகுபடுத்தும் வேகமான செயல்படுத்தல் ஆகும். எடுத்துக்காட்டாக, CFF2 பாகுபடுத்துவது FreeType ஐ விட 3.5 மடங்கு வேகமானது. பகுத்தல் glyf, இதற்கிடையில், stb_truetype ஐ விட 10% மெதுவாக உள்ளது, ஆனால் இது மாறி எழுத்துருக்களை ஆதரிக்காததன் காரணமாகும், இதை செயல்படுத்த கூடுதல் சேமிப்பு தேவைப்படுகிறது. தகவல். மேலும் விவரங்கள் இல் என்னை தெரிந்து கொள்.
ஆதாரம்: linux.org.ru