import CanvasKitInit from 'canvaskit-wasm/full'; import fs from 'node:fs'; const CK = await CanvasKitInit(); const load = (p) => { const b = fs.readFileSync(p); return CK.Typeface.MakeFreeTypeFaceFromData(b.buffer.slice(b.byteOffset, b.byteOffset+b.byteLength)); }; const tf = load('../assets/Cousine-Regular.ttf'); const etf = load('../assets/NotoEmoji-GPS.ttf'); const s = '📍📷'; console.log('cousine glyphs', JSON.stringify(tf.getGlyphIDs(s))); console.log('emoji glyphs ', JSON.stringify(etf.getGlyphIDs(s))); console.log('textWidth', tf.getTextWidth?.('RECIPESCAM', 24), etf.getTextWidth?.('📍', 24)); const surf = CK.MakeSurface(200, 100); const c = surf.getCanvas(); c.clear(CK.Color(0,0,0,255)); const p = new CK.Paint(); p.setColor(CK.Color(255,255,255,255)); const f = new CK.Font(etf, 48); c.drawText(s, 10, 60, p, f); const px = surf.makeImageSnapshot().readPixels(0, 0, {width:200,height:100,colorType:CK.ColorType.RGBA_8888,alphaType:CK.AlphaType.Unpremul,colorSpace:CK.ColorSpace.SRGB}); let lit = 0; for (let i=0;i128) lit++; console.log('lit pixels in emoji draw:', lit);