def loadKerning(filename):
kerning = plistlib.readPlist(filename)
# <dict>
# <key>@KERN_LEFT_A</key>
# <dict>
# <key>@KERN_RIGHT_C</key>
# <integer>-96</integer>
leftIndex = {} # { glyph-name => <ref to plist right-hand side dict> }
rightIndex = {} # { glyph-name => [(left-hand-side-name, kernVal), ...] }
rightGroupIndex = {} # { group-name => [(left-hand-side-name, kernVal), ...] }
for leftName, right in kerning.iteritems():
if leftName[0] != '@':
leftIndex[leftName] = right
for rightName, kernVal in right.iteritems():
if rightName[0] != '@':
rightIndex.setdefault(rightName, []).append((leftName, kernVal))
else:
rightGroupIndex.setdefault(rightName, []).append((leftName, kernVal))
return kerning, leftIndex, rightIndex, rightGroupIndex
评论列表
文章目录