第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否有一些 python 工具或軟件工具可以讓我訪問字體中的所有組件和表格?

是否有一些 python 工具或軟件工具可以讓我訪問字體中的所有組件和表格?

暮色呼如 2021-12-26 15:26:38
我的最終目標是創(chuàng)建一個從glyph_id到的映射unicode_chars。該映射將具有某種順序,glyph_id --> uni_1, uni_2, uni_3 ...因為單個字形可以映射到許多有序的unicode_characters.我正在尋找一些工具或庫,最好是在 python 中,通過它我可以訪問所有元信息,例如字體內(nèi)部的表格。另外,我正在尋找一些可靠的來源,通過它我可以了解將多個 Unicode 映射到字形的過程。我知道像 harfbuzz 這樣的工具會在給定的 Unicode 字符串上生成(字形、位置)對。但我不確定它是否會反過來。感謝您提供所有幫助。
查看完整描述

1 回答

?
揚帆大魚

TA貢獻1799條經(jīng)驗 獲得超9個贊

您可能應(yīng)該查看fontTools Python 庫,其中包含處理字體所需的組件。


你感興趣的字體表是'cmap'表,你想要的基本上是Unicode映射子表的反向映射(有幾種子表可以映射Unicode;如果你不熟悉這個概念,我建議查看OpenType 規(guī)范以獲取更多信息)?;旧夏銜玫?Unicode 到字形的映射,然后反過來。


fontTools 實際上有一個很好的功能,它會自動選擇“最佳”cmap 子表(它有一個首選 cmap 子表類型的有序列表,并返回您打開的特定字體中第一個可用的)。這是使用該函數(shù)的示例:


from fontTools.ttLib import TTFont

from collections import defaultdict


font = TTFont('path/to/fontfile.ttf')

unicode_map = font.getBestCmap()

reverse_unicode_map = defaultdict(list)


for k, v in unicode_map.items():

    reverse_unicode_map[v].append(k)

reverse_unicode_map 現(xiàn)在擁有一個字形(字形名稱)到整數(shù)代碼點列表的映射:


>>> reverse_unicode_map

defaultdict(<class 'list'>, {'.null': [0, 8, 29], 'nonmarkingreturn': [9, 13], 'space': [32], 'exclam': [33], 'quotedbl': [34], 'numbersign': [35], 'dollar': [36], 'percent': [37], 'quotesingle': [39], 'parenleft': [40], 'parenright': [41], 'asterisk': [42], 'plus': [43], 'comma': [44], 'hyphen': [45], 'period': [46], 'slash': [47], 'zero': [48], 'one': [49], 'two': [50], 'three': [51], 'four': [52], 'five': [53]})

您可以看到有 2 個字形“.null”和“nonmarkingreturn”映射到多個 Unicode。


如果您需要將字形名稱解析為字形索引,則可以使用該font.getGlyphID()方法(傳入字形名稱;它將返回相應(yīng)的整數(shù) ID)。


查看完整回答
反對 回復 2021-12-26
  • 1 回答
  • 0 關(guān)注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號