Files
NapCatQQ/.pnpm-store/v3/files/dc/7ee81a16feba2d62579a900ed3f60b6886ae4d713f924acc8a0071772066121384ef7efb2b96b0f4f77abf41f9632f2552ff7af4e98264c6854a2bc94f6b1e
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

51 lines
1.3 KiB
Plaintext

/**
* @file directory 表, 读取和写入ttf表索引
* @author mengke01(kekee000@gmail.com)
*
* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html
*/
import table from './table';
export default table.create(
'directory',
[],
{
read(reader, ttf) {
const tables = {};
const numTables = ttf.numTables;
const offset = this.offset;
for (let i = offset, l = numTables * 16; i < l; i += 16) {
const name = reader.readString(i, 4).trim();
tables[name] = {
name,
checkSum: reader.readUint32(i + 4),
offset: reader.readUint32(i + 8),
length: reader.readUint32(i + 12)
};
}
return tables;
},
write(writer, ttf) {
const tables = ttf.support.tables;
for (let i = 0, l = tables.length; i < l; i++) {
writer.writeString((tables[i].name + ' ').slice(0, 4));
writer.writeUint32(tables[i].checkSum);
writer.writeUint32(tables[i].offset);
writer.writeUint32(tables[i].length);
}
return writer;
},
size(ttf) {
return ttf.numTables * 16;
}
}
);