slice font
parent
f5519cf0f2
commit
18f1740abc
@ -0,0 +1,39 @@
|
||||
import { Font } from 'fonteditor-core';
|
||||
import Fontmin from 'fontmin';
|
||||
import fs from 'fs';
|
||||
|
||||
const buffer = fs.readFileSync('../public/RoGSanSrfStd-Bd.otf');
|
||||
const fontPre = Font.create(buffer, {
|
||||
type: 'otf',
|
||||
});
|
||||
const fontObject = fontPre.get();
|
||||
const codeList = Object.keys(fontObject.cmap)
|
||||
.filter((n) => n >= parseInt('0x4E00') && n < parseInt('0xA000'))
|
||||
.map((n) => parseInt(n));
|
||||
const font = Font.create(buffer, {
|
||||
type: 'otf',
|
||||
subset: codeList,
|
||||
});
|
||||
const result = font
|
||||
.find({
|
||||
filter: (glyf) =>
|
||||
!(glyf.xMin === 408 && glyf.xMax === 592 && glyf.yMin === 452 && glyf.yMax === 636),
|
||||
})
|
||||
.reduce((p, c) => {
|
||||
if (!c.unicode) {
|
||||
return p;
|
||||
}
|
||||
for (const u of c.unicode) {
|
||||
p.push(u);
|
||||
}
|
||||
return p;
|
||||
}, []);
|
||||
const fontmin = new Fontmin()
|
||||
.src('../public/RoGSanSrfStd-Bd.otf')
|
||||
.use(Fontmin.otf2ttf())
|
||||
.use(
|
||||
Fontmin.glyph({ text: result.reduce((p, c) => p + String.fromCharCode(c), ''), hinting: false })
|
||||
)
|
||||
.use(Fontmin.ttf2woff2())
|
||||
.dest('../public/RoGSS-B_CJK')
|
||||
.run();
|
@ -0,0 +1,7 @@
|
||||
import { resolve } from 'path';
|
||||
import createFontSlice from 'font-slice';
|
||||
|
||||
createFontSlice({
|
||||
fontPath: resolve('../public/GlowSansSC-Normal-Heavy.otf'),
|
||||
outputDir: resolve('../public/GlowSans'),
|
||||
});
|
@ -1,7 +1,13 @@
|
||||
export default async () => {
|
||||
const G2B = new FontFace('G2B', 'url(../RoGSanSrfStd-Bd.otf)');
|
||||
const GSH = new FontFace('GSH', 'url(../GlowSansSC-Normal-Heavy.otf)');
|
||||
await Promise.all([G2B.load(), GSH.load()]).then((fonts) =>
|
||||
fonts.map((font) => document.fonts.add(font))
|
||||
import settings from '../settings';
|
||||
|
||||
export default async (content: string = 'A') => {
|
||||
// const G2B = new FontFace('G2B', 'url(../RoGSanSrfStd-Bd_other.woff2)');
|
||||
// // const GSH = new FontFace('GSH', 'url(../GlowSansSC-Normal-Heavy.otf)');
|
||||
// await Promise.all([G2B.load() /*, GSH.load()*/]).then((fonts) =>
|
||||
// fonts.map((font) => document.fonts.add(font))
|
||||
// );
|
||||
await document.fonts.load(
|
||||
`${settings.fontSize}px RoGSanSrfStd-Bd, GlowSansSC-Normal-Heavy`,
|
||||
content
|
||||
);
|
||||
};
|
||||
|
Loading…
Reference in New Issue