我认为这可能是问愚蠢问题的最好地方,…所以我们在这里:
我目前正在编写一个非常简单的woff2解析器,以获取有关字体的一些信息。我让woff和otf解析工作,但是woff2让我头疼。
我正在努力解析TableDictionaryEntries。正如规格说明中所述,标志是UInt8。前6位表示表名列表中的索引。
所以我要做以下几件事:(我对所有的东西都是新手)
let tables = [
'cmap',
'head',
...
] // size 64
let flags = binary.getUInt8(); // gets me the next 8bits as UInt8
// 00001101 or 10000010 or 10101011 or 01110100
let tableNameIndex = (flags << 2) >> 2
// 00001101 or 00000010 or 00101011 or 00110100
// some libraries do flags & 0x3f but that seems to be the same
let tableName = tables[Int(tableNameIndex)]但我觉得我做错了什么。我在TableDirectory中有两个名字--这不对,…也许我搞砸了bigEdian之类的东西?
发布于 2022-08-31 06:16:50
就是这样。transformLength没有设置,所以我遇到了对齐问题。
https://stackoverflow.com/questions/73544440
复制相似问题