ttf-parser TrueType/OpenType ቅርጸ ቁምፊዎችን የሚተነተን ቤተ መጻሕፍት ነው።
አዲሱ ስሪት ለተለዋዋጭ ቅርጸ ቁምፊዎች ሙሉ ድጋፍ አለው
(ተለዋዋጭ ቅርጸ ቁምፊዎች) እና ሲ ኤፒአይ፣ በውጤቱም በታሪኩ ውስጥ ለማስተዋወቅ ወሰንኩ።
እስከ ቅርብ ጊዜ ድረስ ከTrueType ቅርጸ-ቁምፊዎች ጋር ለመስራት የሚያስፈልግ ከሆነ በትክክል ሁለት አማራጮች ነበሩ-FreeType እና stb_truetype። የመጀመሪያው ግዙፍ ጥምረት ነው, ሁለተኛው ደግሞ በትክክል አነስተኛ ቁጥር ያላቸውን ተግባራት ይደግፋል.
ttf-parser መሃል ላይ የሆነ ቦታ ነው። እሱ ሁሉንም ተመሳሳይ TrueType ሰንጠረዦችን ይደግፋል (የ TrueType ቅርጸት ብዙ የተለያዩ ሁለትዮሽ ሰንጠረዦችን ያቀፈ ነው) እንደ FreeType, ግን ግሊፍቶቹን እራሳቸው አይስሉም.
በተመሳሳይ ጊዜ፣ ttf-parser ብዙ ሌሎች ጉልህ ልዩነቶችን ይዟል፡-
- ttf-parser ደህንነቱ ያልተጠበቀ ሳይጠቀም በሩስት የተጻፈ ነው። FreeType እና stb_truetype በ C ውስጥ ተጽፈዋል።
- ttf-parser ብቸኛው የማህደረ ትውስታ-አስተማማኝ ትግበራ ነው። የዘፈቀደ ማህደረ ትውስታን ማንበብ አይቻልም. ተጋላጭነቶች በFreeType ውስጥ በቋሚነት እየተስተካከሉ ነው፣ እና stb_truetype በመርህ ደረጃ የዘፈቀደ ቅርጸ-ቁምፊዎችን ለማንበብ የተነደፈ አይደለም።
- ttf-parser ብቸኛው የክር-አስተማማኝ ትግበራ ነው። ሁሉም የመተንተን ዘዴዎች ቋሚ ናቸው. ብቸኛው ለየት ያለ ሁኔታ ለተለዋዋጭ ቅርጸ-ቁምፊዎች መጋጠሚያዎችን ማቀናበር ነው ፣ ግን ይህ ተግባር እንደገና ገባ። FreeType በመሠረቱ ነጠላ-ክር ነው. stb_truetype - መልሶ ገባ (በተለያዩ ክሮች ውስጥ ነጠላ ቅጂዎችን መጠቀም ይችላሉ ፣ ግን ከብዙዎች ውስጥ አንዱ አይደለም)።
- ttf-parser ክምር ምደባዎችን የማይጠቀም ብቸኛው ትግበራ ነው። ይህ መተንተንን ለማፋጠን እና በ OOM ላይ ችግሮችን ለማስወገድ ያስችላል።
- እንዲሁም፣ ሁሉም ማለት ይቻላል የሂሳብ ስራዎች እና የቁጥር አይነቶች ልወጣዎች ተረጋግጠዋል (ስታቲስቲክስን ጨምሮ)።
- በጣም በከፋ ሁኔታ ውስጥ, ቤተ-መጽሐፍት የተለየ ነገር ሊጥል ይችላል. በዚህ አጋጣሚ፣ በሲ ኤፒአይ ውስጥ፣ ልዩ ሁኔታዎች ይያዛሉ እና ተግባሩ ስህተት ይመልሳል፣ ግን አይበላሽም።
እና ሁሉም የደህንነት ዋስትናዎች ቢኖሩም፣ ttf-parser እንዲሁ ፈጣኑ ትግበራ ነው። ለምሳሌ፣ CFF2ን መተንተን ከFreeType 3.5 እጥፍ ፈጣን ነው። ግሊፍን መተንተን፣ ይህ በእንዲህ እንዳለ፣ ከ stb_truetype 10% ቀርፋፋ ነው፣ ነገር ግን ይህ ተለዋዋጭ ቅርጸ ቁምፊዎችን ስለማይደግፍ ነው፣ አተገባበሩ ተጨማሪ ማከማቸትን ይጠይቃል። መረጃ. ተጨማሪ ዝርዝሮች በ README.
ምንጭ: linux.org.ru