Skip to content

P0-05 · extract / 导出 API 迁移到 v8

  • Phase / ID: P0 / P0-05
  • Depends on: P0-02
  • Files: packages/pixi-painter/src/painter.tsextractCanvas)、调用方 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

  1. painter.ts extractCanvas:核对四个分支签名;'pixels' 分支返回值结构改为 { pixels, width, height }(或在此卡内决定只返回 pixels 字段以保持旧形状,并在 JSDoc 注明)。
  2. 检查 examples/vuePainterControls.vue download / extract:extractCanvas('base64') 仍返回 string,<a download> 正常。
  3. examples/vue composable usePixiPainterextractCanvas('canvas')toBlob:确认 v8 返回的 canvas 仍是可 toBlobHTMLCanvasElement/ICanvas(必要时 as HTMLCanvasElement)。

Acceptance

  • [ ] pnpm -F pixi-painter typecheck 通过。
  • [ ] examples/vue:点「下载」得到正确 PNG;点「extract」目标画布显示截图。
  • [ ] 'pixels' 分支返回结构已在 JSDoc / 类型上明确。

Out of scope

  • PNG/PSD 工程文件导出(→ P8)。

Released under the MPL-2.0 License.