P0-05 · extract / 导出 API 迁移到 v8
- Phase / ID: P0 / P0-05
- Depends on: P0-02
- Files:
packages/pixi-painter/src/painter.ts(extractCanvas)、调用方examples/vue(download / extract 按钮)、packages/controls - Effort: S
Context
extractCanvas('image'|'base64'|'canvas'|'pixels') 走 app.renderer.extract.*。v8 的 extract 大体同名,但:
extract.image(...)/base64(...)返回 Promise(v7 也是 Promise,确认await)。extract.pixels(...)在 v8 返回{ pixels, width, height }(不再是裸Uint8Array)——'pixels'分支的返回类型变了,调用方需适配。- extract 方法在 v8 接受
target或{ target, ... }选项对象。
Steps
painter.tsextractCanvas:核对四个分支签名;'pixels'分支返回值结构改为{ pixels, width, height }(或在此卡内决定只返回pixels字段以保持旧形状,并在 JSDoc 注明)。- 检查
examples/vue的PainterControls.vuedownload / extract:extractCanvas('base64')仍返回 string,<a download>正常。 examples/vuecomposableusePixiPainter里extractCanvas('canvas')后toBlob:确认 v8 返回的 canvas 仍是可toBlob的HTMLCanvasElement/ICanvas(必要时as HTMLCanvasElement)。
Acceptance
- [ ]
pnpm -F pixi-painter typecheck通过。 - [ ]
examples/vue:点「下载」得到正确 PNG;点「extract」目标画布显示截图。 - [ ]
'pixels'分支返回结构已在 JSDoc / 类型上明确。
Out of scope
- PNG/PSD 工程文件导出(→ P8)。